现在公司用docker,有时候需要从容器中拷贝文件出来。

先上语法:

docker cp [OPTIONS] [CONTAINER_ID]:[SRC_PATH] [DEST_PATH]

语法是这么个写法,在实际的操作中,在写容器内的路径的时候并不能自动补全,所以实际上还需要还要先进入到容器才行。

下面就拿个实例来讲下:

1.在服务器上用有权限的用户,执行 docker ps 查看全部容器。

 

2.复制id对应容器的id,并执行 docker exec -it [容器id] /bin/bash  进入容器

 

3.假设我要复制的是common.log文件,那么我进入容器后就用find ./ -name "common.log"命令找到那个文件所在目录,假设查找结果是 ./mwbase/applogs/rtlog/OLS/common.log,执行exit退出docker容器

 

4.退出容器后,我希望复制到宿主机的/home/rhlog目录下重命名为yyy.log,那么最后的命令就是:

docker cp 容器id:容器内文件路径 目标路径
#示例
docker cp 6741xxxxxxxx:/xxxx/xxx/xxx/xxxx/common.log /home/rhlog/yyy.log  #注意没有"."

执行结果可以看到/home/rhlog目录拷贝得到了yyy.log,这样文件就拷贝出来辣。

 

 

 

 

 

 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐