非常教程

Docker 17参考手册

引擎: CLI | Engine: CLI

docker cp

描述

复制容器和本地文件系统之间的文件/文件夹

用法

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

选项

Name, shorthand

Default

Description

--archive, -a

false

Archive mode (copy all uid/gid information)

--follow-link, -L

false

Always follow symbol link in SRC_PATH

父命令

命令

描述

docker

Docker CLI的基本命令。

扩展描述

docker cp实用程序将内容复制SRC_PATHDEST_PATH。您可以从容器的文件系统复制到本地机器或从本地文件系统复制到容器。如果-SRC_PATHor 指定DEST_PATH,您也可以从一个STDIN或多个流向tar存档STDOUT。该CONTAINER可以是运行或停止容器。该SRC_PATHDEST_PATH可以是文件或目录。

docker cp命令假定容器路径与容器的/(根)目录相关。这意味着提供初始正斜杠是可选的; 该命令看起来compassionate_darwin:/tmp/foo/myfile.txtcompassionate_darwin:tmp/foo/myfile.txt完全相同。本地机器路径可以是绝对值或相对值。该命令将本地机器的相对路径解释为相对于当前运行的工作目录docker cp

cp命令的行为与 Unix cp -a命令类似,即在可能的情况下保留权限时递归复制目录。所有权设置为目标用户和主要组。例如,复制到容器的文件是由UID:GIDroot用户创建的。复制到本地机器的文件是由UID:GID调用该docker cp命令的用户创建的。但是,如果指定了该-a选项,docker cp则将所有权设置为源用户和主组。如果您指定了该-L选项,请docker cp遵循中的任何符号链接SRC_PATHdocker cp没有创建父目录DEST_PATH,如果它们不存在。

假设一个路径分隔符为/,第一个参数SRC_PATH和第二个参数DEST_PATH的行为如下所示:

  • SRC_PATH 指定一个文件
    • DEST_PATH 不存在
      • 该文件被保存到创建的文件中 DEST_PATH
-  `DEST_PATH` does not exist and ends with `/` 
    - Error condition: the destination directory must exist.
-  `DEST_PATH` exists and is a file 
    - the destination is overwritten with the source file’s contents
-  `DEST_PATH` exists and is a directory 
    - the file is copied into this directory using the basename from `SRC_PATH` 
  • SRC_PATH 指定一个目录
    • DEST_PATH 不存在
      • DEST_PATH被创建为一个目录,源目录的内容被复制到这个目录中
-  `DEST_PATH` exists and is a file 
    - Error condition: cannot copy a directory to a file
-  `DEST_PATH` exists and is a directory 
    -  `SRC_PATH` does not end with `/.` (that is: _slash_ followed by _dot_) 
        - the source directory is copied into this directory
    -  `SRC_PATH` does end with `/.` (that is: _slash_ followed by _dot_) 
        - the _content_ of the source directory is copied into this directory

命令需要SRC_PATHDEST_PATH按照上述规则存在。如果SRC_PATH是本地的并且是符号链接,则默认情况下复制符号链接而不是目标。要复制链接目标而不是链接,请指定该-L选项。

冒号(:)用作CONTAINER它和路径之间的分隔符。例如,您也可以:在指定路径到本地机器SRC_PATHDEST_PATH本地机器时使用file:name.txt。如果在本地机器路径中使用: ,则必须使用相对路径或绝对路径进行显式指定,例如:

`/path/to/file:name.txt` or `./file:name.txt`

这是不可能复制某些系统文件,如在资源/proc/sys/dev在容器中的用户创建,tmpfs 的,和坐骑。但是,您仍然可以通过手动运行tar来复制这些文件docker exec。以下两个示例以不同的方式执行相同的操作(考虑SRC_PATH并且DEST_PATH是目录):

$ docker exec foo tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | tar Cxf DEST_PATH -
$ tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | docker exec -i foo tar Cxf DEST_PATH -

使用-作为SRC_PATH流的内容STDIN作为一个 tar 归档。该命令将tar的内容提取到DEST_PATH容器的文件系统中。在这种情况下,DEST_PATH必须指定一个目录。使用-作为DEST_PATH流的资源作为一个tar归档的内容STDOUT

引擎: CLI | Engine: CLI相关

1.守护进程CLI参考(dockerd)(引擎) | Daemon CLI reference (dockerd) (Engine)
2.docker
3.docker attach
4.docker build
5.docker checkpoint
6.docker checkpoint create
7.docker checkpoint ls
8.docker checkpoint rm
9.docker commit
10.docker config
11.docker config create
12.docker config inspect
13.docker config ls
14.docker config rm
15.docker container
16.docker container attach
17.docker container commit
18.docker container cp
19.docker container create
20.docker container diff
21.docker container exec
22.docker container export
23.docker container inspect
24.docker container kill
25.docker container logs
26.docker container ls
27.docker container pause
28.docker container port
29.docker container prune
30.docker container rename
31.docker container restart
32.docker container rm
33.docker container run
34.docker container start
35.docker container stats
36.docker container stop
37.docker container top
38.docker container unpause
39.docker container update
40.docker container wait
41.docker create
42.docker deploy
43.docker diff
44.docker events
45.docker exec
46.docker export
47.docker history
48.docker image
49.docker image build
50.docker image history
51.docker image import
52.docker image inspect
53.docker image load
54.docker image ls
55.docker image prune
56.docker image pull
57.docker image push
58.docker image rm
59.docker image save
60.docker image tag
61.docker images
62.docker import
63.docker info
64.docker inspect
65.docker kill
66.docker load
67.docker login
68.docker logout
69.docker logs
70.docker network
71.docker network connect
72.docker network create
73.docker network disconnect
74.docker network inspect
75.docker network ls
76.docker network prune
77.docker network rm
78.docker node
79.docker node demote
80.docker node inspect
81.docker node ls
82.docker node promote
83.docker node ps
84.docker node rm
85.docker node update
86.docker pause
87.docker plugin
88.docker plugin create
89.docker plugin disable
90.docker plugin enable
91.docker plugin inspect
92.docker plugin install
93.docker plugin ls
94.docker plugin push
95.docker plugin rm
96.docker plugin set
97.docker plugin upgrade
98.docker port
99.docker ps
100.docker pull
Docker 17

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06