Docker将文件从主机复制到容器

我正在尝试从Docker主机复制一组文件到容器。 在直接进入/ var / lib / docker / aufs / …的AUFS系统上工作。 不过,我是Fedora的另一个系统,它使用devicemapper作为存储驱动程序。 在这个系统上,如果我这样做:

[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容器的所有build议

使用焦油似乎是伟大的,而不是直接去基础FS。 但我不能认为所有的容器都会有焦油。

如果它是相关的,我甚至试图在容器中创build一个文件,但它然后做了一个查找。 -name / var / lib / docker / devicemapper / mnt无效。

任何提示?

编辑1:根据其中一个答案,添加这些约束。 目的是将文件复制到一个没有。 不修改容器构build(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。

更新:现在dockerCP命令行命令两种方式。 请参阅docker cp文档

用法

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH | –

docker cp [OPTIONS] SRC_PATH | – CONTAINER:DEST_PATH

=======原文答案==============

find跨存储驱动程序工作的最简单的方法:

 cd /proc/`docker inspect --format "{{.State.Pid}}" <containerid>`/root 

已经使用Devicemapper作为存储驱动程序在Ubuntu上进行了testing,在Ubuntu上使用AUFS作为存储驱动程序进行了testing。 在这两种情况下都适用于我。

这个答案为您提供了一个不同的复制视图。

1>使用这种方式提供您知道容器的IP。 如果你的目的只是把文件从主机系统中拿出来放在容器中,你可以用不同的方式来完成。 文件传输协议是一个更简单的方法。 你可以在Docker容器上设置SSH服务器(sshd),并使用scp或其他文件传输工具来完成。

2>使用此命令通过卷共享文件docker run -ti -v /host-path-of-directory-having-files/:/target-path-in-container/:rw image-name bash 。 你可以参考这个链接https://docs.docker.com/userguide/dockervolumes/