这是 docker-cp 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
docker-cp - 在容器和本地文件系统之间复制文件/文件夹。
概要
搬运工人 cp [ - 帮帮我] 容器:SRC_PATH DEST_PATH|-
搬运工人 cp [ - 帮帮我] SRC_PATH|- 容器:DEST_PATH
商品描述
这款 搬运工人 cp 实用程序复制内容 源路径 以及 目标路径. 你可以从复制
容器的文件系统到本地机器或反向,从本地文件系统
到容器。 如果 - 被指定为 源路径 or 目标路径, 你也可以
从中流式传输 tar 存档 标准输入 或 标准输出。 该 集装箱 可以是正在运行或已停止
容器。 这 源路径 or 目标路径 是一个文件或目录。
这款 搬运工人 cp 命令假定容器路径是相对于容器的 / (根)
目录。 这意味着提供初始正斜杠是可选的; 命令看到
同情达尔文:/tmp/foo/myfile.txt 和 同情达尔文:tmp/foo/myfile.txt as
完全相同的。 本地机器路径可以是绝对值或相对值。 命令
将本地机器的相对路径解释为相对于当前工作目录
哪里 搬运工人 cp 运行。
这款 cp 命令的行为类似于 Unix cp -a 复制该目录中的命令
如果可能,递归保留权限。 所有权设置为用户和
目的地的主要组。 例如,创建复制到容器的文件
- 用户标识:GID 根用户的。 复制到本地机器的文件是用
用户标识:GID 调用 搬运工人 cp 命令。 如果您指定 -L 选项,
搬运工人 cp 跟随任何符号链接 源路径.
假设路径分隔符为 /,第一个参数 源路径 和第二个论点
目标路径,行为如下:
· 源路径 指定一个文件
· 目标路径 不存在
· 文件被保存到一个创建于 目标路径
· 目标路径 不存在并以 /
· 错误条件:目标目录必须存在。
· 目标路径 存在并且是一个文件
·目标被源文件的内容覆盖
· 目标路径 存在并且是一个目录
· 文件被复制到这个目录中,使用 basename from 源路径
· 源路径 指定目录
· 目标路径 不存在
· 目标路径 被创建为一个目录,并且 Contents 复制源目录的
进入这个目录
· 目标路径 存在并且是一个文件
· 错误条件:无法将目录复制到文件
· 目标路径 存在并且是一个目录
· 源路径 不以 /.
· 将源目录复制到此目录中
· 源路径 确实以 /.
· 这 内容 将源目录的内容复制到此目录中
该命令需要 源路径 和 目标路径 按照上述规则存在。 如果
源路径 是本地的并且是一个符号链接,符号链接,而不是目标,被复制
默认。 要复制链接目标而不是链接,请指定 -L 选项。
冒号 (:) 用作之间的分隔符 集装箱 和它的路径。 你也可以使用 : ,尤其是
指定路径 源路径 or 目标路径 例如在本地机器上
文件:名称.txt。 如果您使用 : 在本地机器路径中,您必须明确使用
相对或绝对路径,例如:
`/path/to/file:name.txt` 或 `./file:name.txt`
无法复制某些系统文件,例如下的资源 / proc中, /系统, 的/ dev,
以及由用户在容器中创建的挂载。
运用 - 作为 源路径 流的内容 标准输入 作为 tar 存档。 命令
将 tar 的内容提取到 目标路径 在容器的文件系统中。 在这种情况下,
目标路径 必须指定一个目录。 使用 - as 目标路径 流式传输内容
资源作为 tar 存档到 标准输出.
配置
-L, --跟随链接=true|false
按照 SRC_PATH 中的符号链接
- 帮帮我
打印使用说明
示例
假设一个容器已经完成了一些输出作为一个文件保存到
它的文件系统。 这可能是构建作业或其他一些计算的输出。 你可以
将这些输出从容器复制到本地主机上的某个位置。
如果你想复制 /tmp/富 目录从容器到现有 / tmp目录 目录
在你的主机上。 如果你跑 搬运工人 cp 在本地主机上的(主)目录中:
$ docker cp 同情_达尔文:tmp/foo / tmp目录
Docker 创建了一个 /tmp/富 主机上的目录。 或者,您可以省略前导
命令中的斜线。 如果从主目录执行此命令:
$ docker cp 同情_达尔文:tmp/foo tmp
If / tmp目录 不存在,Docker 将创建它并复制其内容 /tmp/富 来自
容器放入这个新目录。 如果 / tmp目录 已经作为目录存在,那么 Docker
将复制内容 /tmp/富 从容器到一个目录 /tmp/富.
将单个文件复制到现有文件时 本地路径, 搬运工人 cp 命令将要么
覆盖内容 本地路径 如果它是一个文件或将其放入 本地路径 如果它是一个
目录,如果存在,则覆盖同名的现有文件。 例如,这
命令:
$ docker cpsharp_ptolemy:/tmp/foo/myfile.txt /test
If /测试 在本地机器上不存在,它将被创建为一个文件
的内容 /tmp/foo/myfile.txt 从容器中。 如果 /测试 作为文件存在,它将是
覆盖。 最后,如果 /测试 作为目录存在,文件将被复制到
/测试/我的文件.txt.
接下来,假设您要将文件或文件夹复制到容器中。 例如,这可以
是一个配置文件或其他一些长时间运行计算的输入,你会
喜欢在它开始之前放入一个创建的容器中。 这很有用,因为它确实
不需要配置文件或其他输入存在于容器镜像中。
如果你有一个文件, 配置文件, 在本地主机上的当前目录中并希望
将其复制到现有目录中 /etc/我的应用程序.d 在容器中,这个命令可以是
用过的:
$ docker cp config.yml myappcontainer:/etc/my-app.d
如果本地目录中有多个文件 /配置 您需要将其复制到
目录 /etc/我的应用程序.d 在容器中:
$ docker cp /config/. 我的应用程序容器:/etc/my-app.d
上面的命令会复制本地的内容 /配置 目录进入目录
/etc/我的应用程序.d 在容器中。
最后,如果要将符号链接复制到容器中,通常要复制
链接的目标而不是链接本身。 要复制目标,请使用 -L 选项,对于
例:
$ ln -s /tmp/somefile /tmp/somefile.ln
$ docker cp -L /tmp/somefile.ln myappcontainer:/ tmp /
此命令复制本地的内容 /tmp/某个文件 进入文件 /tmp/somefile.ln in
容器。 没有 -L 选项, /tmp/somefile.ln 保留其符号链接但不保留
它的内容。
历史
2014 年 XNUMX 月,最初由 William Henry (whenry at redhat dot com) 编译,基于
docker.com 源材料和内部工作。 2014 年 XNUMX 月,由 Sven Dowideit 更新
⟨[电子邮件保护]⟩ 2015 年 XNUMX 月,由 Josh Hawn 更新 ⟨[电子邮件保护]⟩
使用 onworks.net 服务在线使用 docker-cp