码头工人cp

描述

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

用法

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

扩展说明

docker cp实用程序将的内容复制SRC_PATHDEST_PATH。您可以从容器的文件系统复制到本地计算机,也可以从容器的文件系统复制到本地文件系统。如果-SRC_PATH或指定了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命令的行为类似于Unixcp -a命令,因为如果可能,将以递归方式复制目录并保留权限。所有权设置为目的地的用户和主要组。例如,复制到容器的文件是使用UID:GIDroot用户创建的。复制到本地计算机上的文件是使用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_PATHDEST_PATH根据上述规则存在。如果SRC_PATH为local并且是符号链接,则默认情况下将复制符号链接而不是目标链接。要复制链接目标而不是链接,请指定-L选项。

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

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

这是不可能的某些系统文件拷贝如在资源 /proc/sys/devtmpfs的,并在容器中的用户创建的坐骑。但是,您仍然可以通过在中手动运行tar来复制此类文件docker exec。下面的两个示例以不同的方式(考虑SRC_PATHDEST_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_PATHSTDIN。该命令将tar的内容提取到DEST_PATHin容器的文件系统中。在这种情况下,DEST_PATH必须指定目录。使用资源的内容-作为DEST_PATH流作为tar归档文件到STDOUT

选项

名称,简写 默认 描述
--archive-a 存档模式(复制所有uid / gid信息)
--follow-link-L 始终遵循SRC_PATH中的符号链接

上级命令

命令 描述
码头工人 Docker CLI的基本命令。