【发布时间】:2018-09-13 06:42:01
【问题描述】:
我正在写一个Dockerfile 来构建一个应用程序。我知道您可以使用
docker cp <containerId>:/file/path/within/container /host/path/target
(请参阅Copying files from Docker container to host),但我只想运行
docker build
并让它将我的Dockerfile 创建的构建工件转储到我的主机文件系统的某个位置。
我可以在 Dockerfile 中使用命令从容器中复制到主机中吗?喜欢COPY的反面吗?
【问题讨论】:
-
出于好奇,这里的用例是什么?即,如果您正在创建 Docker 映像(而不是运行容器),为什么您需要/希望从其中输出内容?
-
我不明白“图像”和“容器”之间的区别。我正在尝试构建具有大型复杂构建过程的 PDFium,这样我可以只给同事一个脚本,他们也可以构建它。然后我们想从构建过程中获得一个我们可以使用的输出库文件。
-
容器是图像的运行时实例化。一般来说,您通过
docker build从Dockerfile 构建一个镜像,然后通过docker run从该镜像创建实例(容器)。我不知道您的情况的详细信息,但我很想将其建模为一个 3 步过程:(1)构建一个专用的 Docker 映像以执行隔离构建,(2)从此映像实例化一个容器, (3) 在此容器内运行 PDFium 构建(然后通过一种或另一种机制提取构建工件)。 -
明白了。我希望将环境设置封装并构建到一个脚本中。我想我会超出预期的 docker 使用范围。
-
如果你 docker 镜像,然后对主机哑巴怎么办?我厌倦了你提到的 docker dind 问题,但它只有在容器启动时才有效
标签: docker