來自: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.用輸入輸出符