docker cp 命令使用方法

docker cp 的作用和linux 的cp是一样的,用来在宿主机和容器之间复制文件

[root@localhost ~]# docker cp --help

Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

Copy files/folders between a container and the local filesystem

Options:
-a, --archive Archive mode (copy all uid/gid information)
-L, --follow-link Always follow symbol link in SRC_PATH

-a复制所有的信息包括用户名和用户组

使用方法上面写得很清楚了

docker cp 选项 源路径 目标路径,如果是容器,需要写 容器名:绝对路径,容器名可以用id来代替

示范:刚才已创建了ubuntu容器,不会的看前面的日志

[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7103a04f97d3 ubuntu:14.04 "/bin/bash" 2 hours ago Up 2 hours ubuntu
[root@localhost ~]# docker exec -it ubuntu bash
root@7103a04f97d3:/# pwd
/
root@7103a04f97d3:/# cd home/
root@7103a04f97d3:/home# pwd
/home
在容器的/home文件夹下面随便写点什么东西
root@7103a04f97d3:/home# echo "It is a docker space" > test.txt
root@7103a04f97d3:/home# ls
test.txt
root@7103a04f97d3:/home# cat test.txt 
It is a docker space

退出容器,别忘了,要用ctrl+p,然后ctlr+q

root@7103a04f97d3:/home# read escape sequence
[root@localhost ~]# 

从容器里面复制文件到本地

[root@localhost ~]# docker cp ubuntu:/home/test.txt ./test1.txt
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg test1.txt 公共 模板 视频 图片 文档 下载 音乐 桌面
[root@localhost ~]# cat test1.txt 
It is a docker space
容器名可以用id号来代替
[root@localhost ~]# docker cp 7103:/home/test.txt ./test2.txt
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg test1.txt test2.txt 公共 模板 视频 图片 文档 下载 音乐 桌面
[root@localhost ~]# cat test2.txt 
It is a docker space

现在反过来,从真机复制文件到容器

[root@localhost ~]# echo "It is a real space" > rtest.txt
[root@localhost ~]# cat rtest.txt 
It is a real space
[root@localhost ~]# docker cp rtest.txt ubuntu:/home
[root@localhost ~]# docker cp rtest.txt 7103a:/home/rtest2.txt
[root@localhost ~]# 
[root@localhost ~]# docker exec -it ubuntu bash
root@7103a04f97d3:/# cd home/
root@7103a04f97d3:/home# ls
rtest.txt rtest2.txt test.txt
root@7103a04f97d3:/home# cat rtest.txt rtest2.txt 
It is a real space
It is a real space
root@7103a04f97d3:/home# 

其实真机到容器的方法太多了,可以挂载数据卷,也可以用cp,还可以直接echo,这些后面再演示

此条目发表在Docker分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

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