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 cp d8f7c83ba660:/data/buzzMaster/spider.log .
vim spider.log
du -sh spider.log

68M spider.log

第二种方法,需要你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


下面我给大家演示下….

[ruifengyun@bj-buzz-docker01 ~]$ docker ps -a
CONTAINER ID        IMAGE                                              COMMAND                CREATED             STATUS              PORTS               NAMES
57993c2471bc        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider20
448e741cdb6b        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider19
9505a638cb1f        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider18
383800c434b3        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider17
bfe2d0b00cb1        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider16
e3255ccc5ac1        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider15
5be3dc938f9a        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider14
7805ae24a801        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider13
f5f25012689f        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider12
329ef2257dd2        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider11
4c0c070b784e        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider10
849f79258890        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider09
8c142ff53611        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider08
c3b3f9a01b23        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider07
0d2fa89a2538        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider06
49337b923fa8        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider05
072251336c58        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider04
ee5bbe952e04        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider03
21d29ecd8bd6        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider02
d8f7c83ba660        不告你:41231/spider_online:v0.0.5   "/data/buzzMaster/en   2 days ago          Up 2 days                               spider01

[ruifengyun@bj-buzz-docker01 ~]$ docker inspect -f  '{{.Id}}' spider01
d8f7c83ba660e6d874e3571bbc27ba701fbbb317d4acab80793fde53192ac96e
[ruifengyun@bj-buzz-docker01 ~]$

[ruifengyun@bj-buzz-docker01 ~]$ echo xiaorui.cc > xiaorui.cc
[ruifengyun@bj-buzz-docker01 ~]$ cat xiaorui.cc
xiaorui.cc
[root@bj-buzz-docker01 ruifengyun]# cp xiaorui.cc   /var/lib/docker/devicemapper/mnt/d8f7c83ba660e6d874e3571bbc27ba701fbbb317d4acab80793fde53192ac96e/rootfs/root
[root@bj-buzz-docker01 ruifengyun]# docker exec -it d8f7c83ba660e6d874e3571bbc27ba701fbbb317d4acab80793fde53192ac96e cat /root/xiaorui.cc
xiaorui.cc
[root@bj-buzz-docker01 ruifengyun]#




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

1 Response

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

    然并卵

发表评论

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