我創建了一些碼頭圖像,我做了一個wget和apt-get安裝。碼頭工人是一個短暫的實例嗎?
每次我退出Docker實例後,再次返回到圖像,例如Ubuntu:myimage它似乎產生了一個新的新版本,所以這意味着我所有的apt-get install和wget都「丟失」了。
我意識到它不是持久性的,所以我做了碼頭提交...這是一個正確的方式來在碼頭工具「持久性」?
我的問題:是否有可能持續存在而不會一直提交?
感謝
我創建了一些碼頭圖像,我做了一個wget和apt-get安裝。碼頭工人是一個短暫的實例嗎?
每次我退出Docker實例後,再次返回到圖像,例如Ubuntu:myimage它似乎產生了一個新的新版本,所以這意味着我所有的apt-get install和wget都「丟失」了。
我意識到它不是持久性的,所以我做了碼頭提交...這是一個正確的方式來在碼頭工具「持久性」?
我的問題:是否有可能持續存在而不會一直提交?
感謝
不要使用docker run image
,因爲它會從該映像創建一個新的容器。
您可以使用docker start container
來啓動您的容器,或運行docker attach
來附加正在運行的容器。
docker ps -a
docker commit ID yourname:tag
docker run -itd --name con yourname:tag
docker run
命令將從提供的圖像開始一個新的容器。使用docker start
來重新啓動先前停止的容器。
如果要將更改保存回圖像,可以使用docker commit
命令,但這幾乎不是您想要的。相反,使用Dockerfile構建映像並在您想要更改時進行更新。這樣,您可以輕鬆地重新創建圖像並進行更改,而無需從頭開始。對於持久性(例如,配置文件和數據庫),使用卷,這些卷只是存儲在Union File System之外的目錄,作爲主機上的常規目錄。
如果你想構建一個可重用的圖像,你很可能想寫一個Dockerfile:一步一步描述你想對基礎圖像進行的修改。
相反,如果你只是想關機和重啓你的容器一樣,如果它是一個流浪的虛擬機,使用
docker run --name $container_name $image_name
然後
docker [start|stop] $container_name
注意,如果您需要persisten文件系統,Docker系統希望您明確聲明volume。
雖然此鏈接可能回答問題,但最好在此處包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/18310853) – 2017-12-21 03:39:58