Docker:将文件从 Docker 容器复制到主机

新手上路,请多包涵

我正在考虑使用 Docker 在持续集成 (CI) 服务器上构建我的依赖项,这样我就不必在代理本身上安装所有运行时和库。

为了实现这一点,我需要将容器内构建的构建工件复制回主机。那可能吗?

原文由 user2668128 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 490
2 个回答

为了将文件从容器复制到主机,您可以使用命令

docker cp <containerId>:/file/path/within/container /host/path/target

这是一个例子:

 $ sudo docker cp goofy_roentgen:/out_read.jpg .

这里 goofy_roentgen 是我从以下命令获得的容器名称:

 $ sudo docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
1b4ad9311e93        bamos/openface      "/bin/bash"         33 minutes ago      Up 33 minutes       0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp   goofy_roentgen

您还可以使用(部分) Container ID 。下面的命令等价于第一个

$ sudo docker cp 1b4a:/out_read.jpg .

原文由 creack 发布,翻译遵循 CC BY-SA 4.0 许可协议

您不需要使用 docker run

您可以使用 docker create 来做到这一点。

文档

docker create 命令在指定镜像上创建一个可写容器层,并准备运行指定命令。然后将容器 ID 打印到 STDOUT 。这类似于 docker run -d 除了容器永远不会启动。

所以,你可以这样做:

 docker create --name dummy IMAGE_NAME
docker cp dummy:/path/to/file /dest/to/file
docker rm -f dummy

在这里,您永远不会启动容器。这看起来对我有益。

原文由 Ishan Bhatt 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题