小编典典

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

docker

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

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


阅读 758

收藏
2020-06-17

共1个答案

小编典典

支持将文件“从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主机上进行复制!

2020-06-17