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

我正在尝试将一组文件从Docker主机复制到容器。在AUFS系统上,直接进入/ var / lib / docker / 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容器的所有建议

使用tar似乎很棒,而不是直接转到基础FS。但是我不能假设所有容器中都会有焦油。

如果相关,我什至尝试在容器中创建一个文件,但随后进行了一次find。/ var / lib / docker / devicemapper / mnt中的-name无效。

有什么提示吗?

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

回答:

现在docker cp命令行命令可以双向运行。请参阅Docker

CP文档

用法

泊坞窗cp [选项]容器:SRC_PATH DEST_PATH |-

docker cp [选项] SRC_PATH |-CONTAINER:DEST_PATH

=======原始答案==============

找到了适用于存储驱动程序的最简单方法:

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

已在使用Devicemapper作为存储驱动程序的Fedora和在使用AUFS作为存储驱动程序的Ubuntu上对此进行了测试。在两种情况下都对我有用。

以上是 Docker将文件从主机复制到容器 的全部内容, 来源链接: utcz.com/qa/401133.html

回到顶部