docker如何儲存正在執行的程序?

時間 2021-06-15 09:32:36

1樓:

首先說一下就是 docker 不能儲存正在執行的程序,而是能夠儲存完整的環境。

舉乙個簡單的例子: docker run 乙個 centos,在centoshi裡面安裝乙個列印小程式,然後啟動了列印小程式,就會不停地輸出日誌。

那麼 docker 能保留什麼呢?docker commit 可以儲存此時容器成為映象。把你在容器裡面做的所有檔案修改,作為乙個layer 放在映象中。

容器是什麼?容器是映象的執行時。

當你執行「commit」得到的映象的時候,你其實執行的是映象預設的 cmd/entrypoint,而列印程式是容器/映象裡面的乙個程式而已,你可以在此啟動它。此時就完全還原了之前的情況。

docker 的乙個最經典的場景就是 build ship run。

構建映象、推送到倉庫、執行映象。

在測試場景,其實可以做的是 run commit ship

什麼意思?就是執行映象,在容器內做一些操作,出現問題的時候,commit容器成為映象,推送到倉庫,讓研發去run並復現。

2樓:

很久沒用Docker,試著回答一下,如有紕漏請見諒。

我覺得題主是不是不太清楚docker容器(container)和映象(image)的區別?如果不清楚的話,可以看下我這個回答:

docker在web開發中得使用流程是怎樣的?

明確一下場景:

已有映象IMG1,我們通過docker run IMG1命令啟動IMG1得到執行的容器CTN1,CTN1中有乙個列印程序,然後將CTN1結束執行。

此時,如果要檢視現場的話,可以直接docker start CTN1,然後attach到CTN1裡就可以看到現場了。

如果你想把CTN1生成乙個映象,可以用docker commit命令生成映象IMG2,然後通過docker run IMG2執行得到CTN2,然後attach到CTN2也可以看到現場,但是顯然這種方法比前一種要麻煩。

現在還在執行的深空探測器有哪些?

STS 1 NASA 朱諾木星軌道器,好奇火星巡視器,冥王小行星探測器,火星ODYSSEY軌道器,火星勘測軌道器,月球勘測軌道器,新視野探測器,洞察火星著陸器,美文火星軌道器,帕克太陽探測器,旅行者一號探測器,旅行者二號探測器。ESA TGO火星軌道器,火星快車軌道器,貝皮科倫坡水星軌道器。JAXA...

台式電腦開機風扇,顯示卡之類的都在執行,但是我插顯示器顯示無訊號,插滑鼠鍵盤不通電,這是怎麼解決?

插鍵盤滑鼠不通電應該就是自檢沒過,電腦啟動之後風扇和燈的電源給得比較早,因為這些功能不依賴於其他硬體的正常工作,又被其他硬體所依賴 比如風扇不轉cpu工作就會過熱 所以絕大多數情況下都能開始工作,難以作為排除故障的判斷標準。啟動自檢的時候先讀取bios,然後去識別cpu,檢查記憶體,顯示卡,全都沒問...

鐵路線上的標誌為何一部分設定在執行前方的左側,一部分則是在右側?

時光之末 軌道右邊訊號機的情況在貴州貌似挺多,不過都是線上的,站場的較少。由於貴州山路多,經常出現順著山體的彎道,若要在靠山左彎道路段左側安裝訊號機,則會導致視線不良不利於瞭望,所以有些路段的訊號機不得不假架設在右側,方便司機瞭望確認訊號。國內要上幹線的機車都有LKJ2000,那玩意能顯示前方訊號。...