国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

在docker容器中安裝Java(從宿主機向docker容器中拷貝文件)

idisfkj / 1715人閱讀

摘要:正確的拷貝方式從主機向容器中拷貝數據時,其實采用的是一種通道的方式。返回的是完整的容器。進入容器,查看文件。宿主機向容器拷貝數據成功。

操作系統

[root@Optimus /]# uname -a
Linux Optimus 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@Optimus /]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel 
 on an m

docker版本

[root@Optimus /]# docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d/1.7.1
OS/Arch (server): linux/amd64

docker容器

CONTAINER ID        IMAGE                   COMMAND                CREATED             STATUS              PORTS                                   NAMES
fc289f421957        insaneworks/centos      "/bin/bash"            47 hours ago        Up 47 hours                                                 master  

下載java7的rpm包

選擇的是jdk-7u75-linux-x64.rpm

放到宿主機的/usr/java/目錄下

[root@Optimus /]# cd /usr/java
[root@Optimus java]# ls
jdk-7u75-linux-x64.rpm

從宿主機向docker容器中拷貝數據

1) 失敗的拷貝方式

從docker容器中向主機拷貝文件 docker cp containerID:container_path host_path

從主機復制到容器docker cp host_path containerID:container_path

我嘗試用以上方式傳送文件至docker容器中時會報錯

[root@Optimus java]# docker cp jdk-7u75-linux-x64.rpm master:/mnt/
Error: Path not specified

報錯提示一直都是Error: Path not specified

2) 正確的拷貝方式

從主機向docker容器中拷貝數據時,其實采用的是一種通道的方式。

首先,要用docker inspect方法獲得容器的完整ID

[root@Optimus java]# docker inspect -f "{{.Id}}" master
fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4

這里的master可以是container name也可以是短的container ID。返回的fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4是完整的容器ID。

然后,使用通道拷貝數據

[root@Optimus java]# cp /usr/java/jdk-7u75-linux-x64.rpm  /var/lib/docker/aufs/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4/root/
cp: cannot create regular file `/var/lib/docker/aufs/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4/root/": No such file or directory 

報錯No such file or directory

進入到/var/lib/docker/目錄下,確實沒有/aufs這個目錄。

[root@Optimus /]# cd /var/lib/docker
[root@Optimus docker]# ls
containers  devicemapper  graph  init  linkgraph.db  repositories-devicemapper  tmp  trust  vfs  volumes

在docker容器中可以看到有以下目錄

[root@Optimus containers]# docker exec -it master /bin/bash 
[root@master /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var

查找一下docker容器相關的目錄,fc289f421957df7d03146是容器的ID號。

[root@Optimus containers]# find / -name fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4
/var/run/docker/execdriver/native/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4
/var/lib/docker/devicemapper/metadata/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4
/var/lib/docker/devicemapper/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4

...

發現目錄/var/lib/docker/devicemapper/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4

因此,在docker中,其實是映射到/var/lib/docker/devicemapper/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4/這個文件夾中的。這個文件下面就是docker中的根目錄里面的內容,然后我們就可以按照我們想要的內容隨便進行拷貝。

開始拷貝。拷貝到master容器中的mnt目錄下。(為什么要加/rootfs/這個目錄我也不記得什么鬼了。)

[root@Optimus /]# cp /usr/java/jdk-7u75-linux-x64.rpm /var/lib/docker/devicemapper/mnt/fc289f421957df7d03146ab54030aa648ec78118d00d3063cdeb8966b6c223f4/rootfs/mnt

進入容器,查看文件。宿主機向docker容器拷貝數據成功。

[root@Optimus /]# docker exec -it master /bin/bash
[root@master /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var
[root@master /]# cd mnt
[root@master mnt]# ls
jdk-7u75-linux-x64.rpm

安裝java

添加可執行權限。

[root@master mnt]# chmod +x jdk-7u75-linux-x64.rpm 
[root@master mnt]# ls
jdk-7u75-linux-x64.rpm

安裝。

[root@master mnt]# rpm -ivh jdk-7u75-linux-x64.rpm 
Preparing...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
    rt.jar...
    jsse.jar...
    charsets.jar...
    tools.jar...
    localedata.jar...
    jfxrt.jar...

配置環境變量:

編輯profile文件

vim /etc/profile

在profile文件最后追加入如下內容:

export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export  PATH=$PATH:$JAVA_HOME/bin

#以下是Hadoop配置
export HADOOP_HOME=/mnt/hadoop-2.8.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

保存并退出。

執行如下

#source /etc/profile   

java版本

[root@Optimus /]# java -version
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)

參考:http://blog.csdn.net/sonnet12...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27099.html

相關文章

  • docker容器Java宿主機docker容器拷貝文件

    摘要:正確的拷貝方式從主機向容器中拷貝數據時,其實采用的是一種通道的方式。返回的是完整的容器。進入容器,查看文件。宿主機向容器拷貝數據成功。 操作系統 [root@Optimus /]# uname -a Linux Optimus 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 G...

    Maxiye 評論0 收藏0
  • Hadoop on Docker

    摘要:是源碼,要編譯才能用。的是給位機器用的,想在位機器上用只能用編譯的。解壓配置環境變量在和中添加環境變量添加環境變量修改修改修改文件修改在文件中添加鏡像啟動集群進入到每個節點執行每個節點配置查看地址配置啟動查看參考 docker安裝 安裝 yum install -y epel-releas yum install docker-io 加入開機啟動 chkconfig docker on...

    fizz 評論0 收藏0
  • 【記錄】 Docker 的安和通過 Docker 使用 Tomcat and mongoDB 的

    摘要:該命令代表啟動,并且設置啟動名稱和端口號,并將主機當前目錄下的目錄掛載到容器的下的目錄中,這樣以后修改只需要修改該目錄下的相關文件即可。 CentOS 7 下安裝 Docker 摘自 菜鳥教程 Docker 要求 CentOS 系統的內核版本高于 3.10 通過 uname -r 命令查看你當前的內核版本 [root@runoob ~]# uname -r 移除舊的版本 [root@...

    AprilJ 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<