一般情况下,我们在启动容器的时候可以使用-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连接的方式去管理。