Docker命令之四:docker cp

cp Copy files/folders between a container and the local filesystem
在容器和本地文件系统之间复制文件/文件夹

# 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)
  归档模式(复制所有UID / GID信息)
  -L, --follow-link   Always follow symbol link in SRC_PATH
  总是跟在源地址符号链接

docker cp命令类似于UNIX中的cp -a命令,递归复制目录下的所有子目录和文件
-表示通过标准输入/输出设备以流的方式读取或写入tar文件
本地文件系统中的路径可以是绝对路径,也可以是相对路径,相对于当前命令执行的路径
容器中的路径都是相对容器的/根路径
被操作的容器可以是在运行状态,也可以是停止状态
不能复制/proc, /sys, /dev, tmpfs和容器中mount的路径下的文件

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
a75dfeff0898        centos_nginx:1      "/nginx.sh"         2 days ago          Up 2 days                                  confident_wilson
f61fe8c1b847        nginx:1             "/bin/bash"         2 days ago          Up 2 days           0.0.0.0:8080->80/tcp   epic_ride
cf2c588a7b30        centos              "/bin/bash"         5 days ago          Up 5 days                                  nifty_yonath
[root@localhost ~]# curl 127.0.0.1:8080
hello docker!
[root@localhost ~]# cat 1.test 
it's docker cp!
[root@localhost ~]# docker cp ~/1.test f61fe8c1b847:/usr/share/nginx/html/index.html
[root@localhost ~]# curl 127.0.0.1:8080
it's docker cp!
[root@localhost ~]# vim 1.test