Docker容器与主机之间拷贝文件的方法

一般情况下,我们在启动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相关教程见以下内容

Docker安装应用(CentOS 6.5_x64)

Ubuntu 14.04安装Docker 

Ubuntu使用VNC运行基于Docker的桌面系统 

阿里云CentOS 6.5 模板上安装 Docker

Ubuntu 15.04下安装Docker 

在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker

在 Ubuntu 15.04 上如何安装Docker及基本用法

Ubuntu 16.04上Docker使用手记

Docker 的详细介绍请点这里
Docker 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3685bf55068212b48b8c0de87367f6fc.html