一般情况下,我们在启动Docker容器的时候可以使用-v参数映射宿主机的文件或者目录到容器里,这样的话,在宿主机相关目录下的文件修改会自动在容器里生效。
但是,如果我们已经启动了一个容器的话,就只能使用下面的这种方式在容器和宿主机之间拷贝文件了。
docker ps 获取目标容器的ID或者容器的名称 # 我这里的是容器ID为52261df2fab6
docker inspect -f'{{.Id}}' 容器的ID # 获取容器的ID全名称
得到一串类似52261df2fab612b24b3502c4ad98c22aff70ce9fa641c5c9f735ac2415e92da3
cp /root/test.log /var/lib/docker/devicemapper/mnt/52261d...xxx/rootfs/root/ # 这样就把宿主机的test.log拷贝到容器的/root/目录下了。
# 说明:上面的这个方法在CentOS6.7通过yum安装的docker-io测试通过。我另一台测试机安装的是docker-engine,则根本没有/rootfs/这个目录。
最后,还有1个方法,就是在容器里面安装openssh-server和openssh-clients,然后通过scp的方式进行文件拷贝操作。但是docker官方不建议给docker使用ssh连接的方式去管理。
更多Docker相关教程见以下内容:
Ubuntu 14.04安装Docker
在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker