现在公司用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,这样文件就拷贝出来辣。