我想把一组文件从Docker主机复制到容器中。 在 AUFS 系统中,直接进入 /var/lib/docker/aufs/... 即可正常工作。 但是,在另一个使用 devicemapper 作为存储驱动的 Fedora 系统上,如果我这样做:
[root@myhost tmp]# docker inspect -f '{{.Id}}' 393ef4b9f485
393ef4b9f485dafc78037f59bdbeda16d63b8338487248ed25b68cf544f29e24
[root@myhost tmp]# cd /var/lib/docker/devicemapper/mnt/393ef4b9f485dafc78037f59bdbeda16d63b8338487248ed25b68cf544f29e24
[root@myhost 393ef4b9f485dafc78037f59bdbeda16d63b8338487248ed25b68cf544f29e24]# ls -l
total 0
[root@myhost 393ef4b9f485dafc78037f59bdbeda16d63b8338487248ed25b68cf544f29e24]#
我什么也没得到。我尝试了从主机复制文件到Docker容器的所有建议。
使用tar似乎很好,而不是直接进入底层FS。但我不能假设所有容器都有tar。
如果相关,我甚至尝试在容器中创建一个文件,但在/var/lib/docker/devicemapper/mnt中执行find . -name时没有发现它。
有什么提示吗?
编辑1: 基于其中一个答案,添加这些约束条件。 目的是将文件复制到容器中,而不会a.修改容器构建(Dockerfile),b.安装任何ssh或ftp守护程序。和c.甚至不改变容器启动的方式。
编辑2:添加docker信息 :
# docker info
Containers: 1
Images: 21
Storage Driver: devicemapper
Pool Name: docker-253:0-397467-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file:
Metadata file:
Data Space Used: 4.261 GB
Data Space Total: 107.4 GB
Data Space Available: 103.1 GB
Metadata Space Used: 3.596 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.144 GB
Udev Sync Supported: true
Library Version: 1.02.90 (2014-09-01)
Execution Driver: native-0.2
Kernel Version: 3.17.4-301.fc21.x86_64
Operating System: Fedora 21 (Twenty One)
CPUs: 4
Total Memory: 3.86 GiB
Name: fedora-docker
您好, Docker 版本是 1.6.0,容器镜像基于 RHEL。