当前位置: 首页 > 面试题库 >

如何将文件从dockerfile复制到主机?

吴正祥
2023-03-14
问题内容

dockerfile成功构建后,我想获取一些文件,但它不会将文件从容器复制到主机。

这意味着当我构建了dockerfile时,这些文件已经被托管。


问题答案:

支持将文件“从Dockerfile”复制到主机。Dockerfile只是指定如何构建映像的配方。

构建时,您可以将文件从主机复制到要构建的映像(使用或COPY指令ADD

您还可以使用docker
cp将文件从 容器
(已为docker run‘d
的映像)复制到主机(通常,cp也可以从主机复制到容器)


如果你想回到你的主机可能会在生成过程中已经产生了一些文件(例如像调用的脚本是生成SSL),你可以运行一个容器,一个文件夹从您的主机安装和执行CP的命令。

例如,请参见此getcrt脚本。

docker run -u root --entrypoint=/bin/sh --rm -i -v ${HOME}/b2d/apache:/apache apache << COMMANDS
pwd
cp crt /apache
cp key /apache
echo Changing owner from \$(id -u):\$(id -g) to $(id -u):$(id -u)
chown -R $(id -u):$(id -u) /apache/crt
chown -R $(id -u):$(id -u) /apache/key
COMMANDS

两者之间COMMANDS的所有内容都是在容器上执行的命令,包括cp正在复制到主机${HOME}/b2d/apache文件夹中的命令,这些命令/apache与一起安装在容器内-v ${HOME}/b2d/apache:/apache

这意味着每次您/apache在容器中复制任何内容时,实际上都是在${HOME}/b2d/apache主机上进行复制!



 类似资料:
  • 我想在dockerfile成功构建时获取一些文件,但它不将文件从容器复制到主机。 这意味着当我构建dockerfile时,文件已经是主机了。

  • 我正在编写来构建应用程序。我知道您可以使用 (请参见将文件从Docker容器复制到主机),但我只想运行 在Dockerfile中是否有一个命令可以用于从容器中复制到主机中?像的反义词吗?

  • 我正在编写一个Dockerfile来构建一个应用程序。我知道你可以用 (请参阅将文件从Docker容器复制到主机),但我想只运行 并让它将我的创建的构建工件转储到我的主机文件系统的某个地方。 Dockerfile中是否有可以用于从容器复制到主机的命令?与复制相反?

  • 我正在编写一个Docker文件,我的要求是将容器内文件夹的内容复制到本地主机。我怎么能做到这一点呢?

  • 我正在使用docker容器来编译一段代码,我不一定要将其docker化。我已使用必要的构建工具设置了一个映像,但我希望以某种方式将编译后的文件从容器中取出,而无需使用docker cp container:/file host/file命令。换句话说,我希望自动化这个过程,以便在构建完成后,将生成的文件复制到主机。 Dockerfile