2016-07-27 38 views

回答

0

您無法使用更改重建它,您需要將永久性數據存儲在捲上。

要保存更改,但是,您可以使用commit

https://docs.docker.com/engine/reference/commandline/commit/

從容器的變化

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

它創建一個新的形象能夠將容器的文件更改或設置提交到 新圖像很有用。這允許您通過運行 交互式shell來調試容器,或者將工作數據集導出到其他服務器。 通常,最好使用Dockerfiles以記錄和維護的方式管理您的圖像。Read more about valid image names and tags.

提交操作將不包括裝載在容器內的卷 中包含的任何數據。

默認情況下,在提交圖像時暫停提交的容器及其進程將暫停 。這可以降低在創建提交過程中遇到數據損壞的可能性 。

+0

請注意,雖然您可以執行此操作,但它對Docker有點反作用。理想情況下,您希望將任何最終更新納入Dockerfile(或卷,如果需要)。 – ldg

+0

是的,但他碼頭提交只會反映容器而不是圖像本身。 – TheRimalaya

+0

不正確的afaik。 – ldg

1

是的,如果你標記你的搬運工圖像MYIMAGE,只是

FROM myimage

啓動其它Dockerfile並在此之後把你的其他更改

+0

請注意,假定編輯/標記的圖像將來可用,例如保存在可訪問的回購站中。雖然它可能工作,但它是一個非常脆弱的解決方案,因爲它不能通過Dockerfiles或代碼回購重新創建。 – ldg

3

所有的碼頭工人建造工作的方式,你描述的。

唯一需要考慮的是層依賴關係。

考慮Dockerfile

FROM something 
RUN cmd1 
RUN cmd2 
RUN cmd3 
RUN cmd4 

如果更改cmd1然後所有層將被重建,因爲如果你改變​​3210不是隻此命令將被重建,他們可能對於不同的,以cmd1
,因爲它有不會影響任何其他層。

想想需要按什麼順序運行哪些命令 - 也許你可以通過重新排序語句來改進它。

相關問題