Docker容器和主机如何互相拷贝传输文件

上次遇到一个紧急的调整bug的事情,自己也懒得复制粘贴,看看有没有cp的参数。 结果man docker的文档居然是有复制文件到docker 容器的方式。    这篇文章里面我会把知道的方法都写出来。


这两天写了一个通用的配置文件监控重载的后端程序,非常适合在docker环境下用。 它可以实现在分布式的架构下,指定哪个节点重载更新配置或则是xx的操作。 可以很方便的通过配置来调整系统的一个状态。系统是支持系统发送的signal信号接收,如果是跨实体机的话,我会考虑做一层rpc对于信号的处理,保证了信号的接收。 这样基本保证了当前任务的完成,不会丢失当前正在丢失的任务。

还是说句废话,原文是在 http://xiaorui.cc/2015/04/12/docker容器和主机如何互相拷贝传输文件/   请到主站查看,内容以后会有所更新的。  http://xiaorui.cc

第一个方法是官方比较推荐的,其实和最后那种方法实现是一样的。docker cp的方法实现也是把文件推到容器里的aufs文件系统里:

docker cp <containerId>:/file/path/within/container /host/path/target

第二种方法,需要你docker run 创建容器的时候,就需要指定挂载的目录

docker run -v /xiaorui.cc/to/hostdir:/mnt $container

这样你在系统中就可以看到然后外挂在里的目录了,直接copy就可以了。 

还有一个方法,算是比较麻烦的。 

A. 获取容器名称或者id :

$ docker ps

B. 获取整个容器的id,其实键盘tag就可以补全的。 

$ docker inspect -f  ’{{.Id}}’  步骤A获取的名称或者id

C. 在主机上拷贝文件到docker里面:

$ sudo cp path-file-host /var/lib/docker/devicemapper/mnt/<<容器的id>>/rootfs/root


下面我给大家演示下….




对Golang感兴趣的朋友可以加群: 278517979 !!!
另外如果大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码, 感谢!
另外再次标注博客原地址  xiaorui.cc

1 Response

  1. 从主机到容器,从容器到主机,能不能写清楚点,然并卵 2016年11月29日 / 上午11:05

    然并卵

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">