将文件从主机复制到容器 [英] Copying file from host to container

查看:158
本文介绍了将文件从主机复制到容器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图将一组文件从docker主机复制到容器。
在AUFS系统上直接进入/ var / lib / docker / aufs / ...工程。
然而我是另一个系统与Fedora有devicemapper作为存储驱动程序。
在这个系统上,如果我这样做:

I am trying to copy a set of files from docker host to container. On a AUFS system directly going into /var/lib/docker/aufs/... works. However I am another system with Fedora that has devicemapper as the storage driver. On this system if I do this:

[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将存在于所有容器中。

Using tar seems to be great, instead of directly going to the underlying FS. But I cannot assume that tar would be present in all containers.

如果相关,我甚至尝试在容器中创建一个文件,但它然后发现。

If it is relevant, I have even tried to create a file in the container, but it and then did a find . -name in /var/lib/docker/devicemapper/mnt to no avail.

任何提示?

编辑1:
根据其中一个答案,添加这些约束。
目的是将文件复制到没有。不修改容器构建(Dockerfile),b。不要安装任何ssh或ftp守护程序。和c。

EDIT 1: Based on one of the answers, adding these constraints. The intent is to copy files into a container without a. not modify the containers build (Dockerfile), b. To not install any ssh or ftp daemons. and c. not even change the way the container was started.

编辑2:添加docker信息

EDIT 2: Adding the docker info :

# 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 Version is 1.6.0 and container image is based on RHEL.

推荐答案

找到最简单的存储驱动程序工作方式:

Found the most easiest way that works across storage drivers:

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

在Fedora上使用Devicemapper存储驱动程序
和在Ubuntu上使用AUFS作为存储驱动程序。
在这两种情况下都适用于我。

Have tested this on Fedora with Devicemapper as the storage driver and on Ubuntu with AUFS as the storage driver. Works for me in both the cases.

这篇关于将文件从主机复制到容器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆