码头工人cp
描述
在容器和本地文件系统之间复制文件/文件夹
用法
$ docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
扩展说明
该docker cp
实用程序将的内容复制SRC_PATH
到DEST_PATH
。您可以从容器的文件系统复制到本地计算机,也可以从容器的文件系统复制到本地文件系统。如果-
为SRC_PATH
或指定了DEST_PATH
,则还可以从STDIN
或向传送tar归档文件
STDOUT
。该CONTAINER
可以是运行或停止容器。该SRC_PATH
或DEST_PATH
可以是文件或目录。
该docker cp
命令假定容器路径相对于容器的
/
(根)目录。这意味着提供初始正斜杠是可选的。该命令将compassionate_darwin:/tmp/foo/myfile.txt
和
compassionate_darwin:tmp/foo/myfile.txt
视为相同。本地机器路径可以是绝对值或相对值。该命令将本地计算机的相对路径解释为相对于当前运行目录的相对路径docker cp
。
该cp
命令的行为类似于Unixcp -a
命令,因为如果可能,将以递归方式复制目录并保留权限。所有权设置为目的地的用户和主要组。例如,复制到容器的文件是使用UID:GID
root用户创建的。复制到本地计算机上的文件是使用UID:GID
调用该docker cp
命令的用户的创建的。但是,如果指定该-a
选项,docker cp
则将所有权设置为源的用户和主要组。如果您指定-L
选项,请docker cp
跟随中的任何符号链接SRC_PATH
。 如果父目录不存在docker cp
,则不创建父目录
DEST_PATH
。
假设使用路径分隔符/
,的第一个参数SRC_PATH
和的第二个参数DEST_PATH
,其行为如下:
SRC_PATH
指定一个文件DEST_PATH
不存在- 该文件将保存到在以下位置创建的文件中
DEST_PATH
- 该文件将保存到在以下位置创建的文件中
DEST_PATH
不存在,结尾为/
- 错误条件:目标目录必须存在。
DEST_PATH
存在并且是一个文件- 目标被源文件的内容覆盖
DEST_PATH
存在并且是目录- 使用以下文件中的基本名称将文件复制到此目录中:
SRC_PATH
- 使用以下文件中的基本名称将文件复制到此目录中:
SRC_PATH
指定目录DEST_PATH
不存在DEST_PATH
被创建为目录,并将源目录的内容复制到该目录中
DEST_PATH
存在并且是一个文件- 错误条件:无法将目录复制到文件
DEST_PATH
存在并且是目录SRC_PATH
不以/.
(即:斜杠后跟dot) 结尾- 源目录复制到该目录中
SRC_PATH
确实以/.
(即:斜杠后跟dot) 结尾- 源目录的内容被复制到该目录中
该命令要求SRC_PATH
并DEST_PATH
根据上述规则存在。如果SRC_PATH
为local并且是符号链接,则默认情况下将复制符号链接而不是目标链接。要复制链接目标而不是链接,请指定-L
选项。
冒号(:
)用作和之间的分隔符CONTAINER
。您也可以:
在指定SRC_PATH
或DEST_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 CONTAINER tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | tar Cxf DEST_PATH -
$ tar Ccf $(dirname SRC_PATH) - $(basename SRC_PATH) | docker exec -i CONTAINER tar Cxf DEST_PATH -
将tar存档的内容-
用作SRC_PATH
流STDIN
。该命令将tar的内容提取到DEST_PATH
in容器的文件系统中。在这种情况下,DEST_PATH
必须指定目录。使用资源的内容-
作为DEST_PATH
流作为tar归档文件到STDOUT
。
选项
名称,简写 | 默认 | 描述 |
--archive , -a |
存档模式(复制所有uid / gid信息) | |
--follow-link , -L |
始终遵循SRC_PATH中的符号链接 |
上级命令
命令 | 描述 |
---|---|
码头工人 | Docker CLI的基本命令。 |