2015-10-27 26 views
4

我想在dockerfile構建成功時獲取一些文件,但它不會將文件從容器複製到主機。如何將文件從dockerfile複製到主機?

這意味着當我建立了dockerfile時,這些文件已經是主機了。

+0

[泊塢窗 - 從容器中複製文件到主機(https://stackoverflow.com/q/22049212/6521116) –

回答

2

當你建立,你有機會從主機的文件複製到你正在建設(與COPY directiveADD

您也可以從容器複製文件(一個形象,在已對圖像docker run'd)與主機docker cp(最後,cp也可以從主機複製到容器)

但是,您不能複製「從Dockerfile」:Dockerfile只是一個配方,指定如何構建圖片。

如果你想回到你的主機可能會在生成過程中已經產生了一些文件(例如像calling a scriptgenerates ssl),你可以運行一個容器,一個文件夾從您的主機安裝和執行CP的命令。

例如見這個getcrt script

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

+0

感謝您的答覆。如此特別,我會嘗試一下。 – Allen

相關問題