docker容器與宿主機之間內容拷貝


來自:http://blog.csdn.net/yangzhenping/article/details/43667785

常用的方式有3種:

從容器內拷貝文件到主機上

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

例如:

[root@hadoop hadoop]# 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.用輸入輸出符

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM