jinying8869 发表于 2017-12-6 11:44:46

docker容器与宿主机之间内容拷贝

  来自:http://blog.csdn.net/yangzhenping/article/details/43667785
  常用的方式有3种:

从容器内拷贝文件到主机上



docker cp <containerId>:/file/path/within/container /host/path/target
  例如:



# docker cp 7a0b6182a059:/home/oracle /home/hadoop/silentConfig/
  实际上容器的目录在映射到宿主机为:



/var/lib/docker/overlay/75d23e24dfcb9db41d7b51a356a294ffae82e5eaeed7670d9a7f9fa4862a933d/merged/home/oracle

从主机上拷贝文件到容器内
  1.用-v挂载主机数据卷到容器内



docker run -v /path/to/hostdir:/mnt $container
在容器内拷贝
cp /mnt/sourcefile /path/to/destfile
  2.直接在主机上拷贝到容器物理存储系统
  A. 获取容器名称或者id :



$ docker ps
  B. 获取整个容器的id



$ docker inspect -f   '{{.Id}}'步骤A获取的名称或者id
  C. 在主机上拷贝文件:



$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE   
或者
$ sudo cp path-file-host /var/lib/docker/devicemapper/mnt/123abc<<id>>/rootfs/root
  例子:



$ docker ps

CONTAINER ID      IMAGE    COMMAND       CREATED      STATUS       PORTS      NAMES

d8e703d7e303   solidleon/ssh:latest      /usr/sbin/sshd -D                      cranky_pare

$ docker inspect -f   '{{.Id}}' cranky_pare

or   
$ docker inspect -f   '{{.Id}}' d8e703d7e303

d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

$ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5
  3.用输入输出符
页: [1]
查看完整版本: docker容器与宿主机之间内容拷贝