最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你如何從正在運行的容器創(chuàng)建?Docker?映像

 更新時間:2022年02月14日 14:44:49   作者:mikes?zhang  
這篇文章主要介紹了如何從正在運行的容器創(chuàng)建?Docker?映像,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在這里插入圖片描述

Docker 容器通常是缺乏內(nèi)部狀態(tài)的臨時應(yīng)用程序?qū)嵗_@是處理它們的最佳實踐方法,可讓您隨時停止或重新啟動容器。

但有時對容器文件系統(tǒng)的修改是不可避免的。也許您正在試用軟件并希望稍后返回快照。另一個用例可能是容器內(nèi)的軟件停止工作并且您希望保存一個副本以供將來調(diào)試的情況。

以下是如何從現(xiàn)有容器創(chuàng)建新的 Docker 映像。然后,您將能夠從該映像啟動另一個容器,該容器將填充第一個容器的文件系統(tǒng)。

提交容器

該docker commit命令用于獲取容器并從中生成新圖像。它適用于已停止或正在運行的容器。

基本語法如下:

docker commit example-container example-image:latest

這會從名為 的容器中創(chuàng)建一個圖像example-container。如果您愿意,還可以通過 ID 識別容器。這兩條信息都可以從docker ps列出主機上所有容器的輸出中獲得。

在這里插入圖片描述

生成的圖像被分配作為命令的第二個參數(shù)給出的標(biāo)簽。這example-image:latest在上面顯示的示例中。就像常規(guī)的圖像標(biāo)記操作一樣,如果新圖像已經(jīng)存在,它將替換標(biāo)記的引用。

在這里插入圖片描述

現(xiàn)在你可以使用你的鏡像將文件系統(tǒng)從example-container一個新的容器實例中恢復(fù):

docker run -d example-image:latest

文件系統(tǒng)內(nèi)容將在命令執(zhí)行example-container時與容器匹配有一個重要的警告:安裝卷的內(nèi)容將不包括在內(nèi),因此它們的安裝位置在創(chuàng)建的容器映像中將是空的。要運行具有完整卷數(shù)據(jù)的新容器,請在使用啟動第二個實例時使用標(biāo)志從第一個容器重新附加卷。docker commit-vdocker run

另一個值得注意的癥結(jié)是 Docker 如何處理正在運行的容器的提交。在大多數(shù)情況下,這應(yīng)該可以無縫地工作,但它默認在創(chuàng)建提交之前暫停目標(biāo)容器。鏡像創(chuàng)建完成后容器內(nèi)的所有進程都會暫停,然后再恢復(fù)。這提高了新映像中的數(shù)據(jù)一致性,但暫時無法訪問容器。–pause false您可以通過包含在您的docker commit命令中來禁用此行為。

添加提交消息

該docker commit命令以與 Git 等版本控制軟件類似的方式支持提交消息。從容器創(chuàng)建映像時添加消息可讓您記錄更改的內(nèi)容以及提交背后的原因。

使用–messageor-m標(biāo)志來應(yīng)用提交消息:

docker commit -m "Example commit" example-container example-image:latest

您也可以使用專用標(biāo)志添加作者信息。將通用First Name email@example.com格式的字符串提供給–authoror-a標(biāo)志。它將與提交消息一起保存。

docker commit -a "Example Author <example@example.com>" -m "Example commit" example-container example-image:latest

docker history當(dāng)您使用該命令查看圖像中的圖層時,會顯示提交消息。它們將顯示在COMMENT最右側(cè)的列中。

在這里插入圖片描述

訪問此信息的另一種方法是與從圖像的 JSON 表示中提取作者身份和評論值docker inspect一起使用:grep

docker inspect <image-id> | grep 'Created\|Author\|Comment'

在這里插入圖片描述

更改 Dockerfile 指令
提交一個鏡像讓你有機會改變它的一些 Dockerfile 指令。您可以在新圖像中覆蓋以下值:

  • CMD
  • ENTRYPOINT
  • ENV
  • EXPOSE
  • LABEL
  • ONBUILD
  • USER
  • VOLUME
  • WORKDIR

要設(shè)置指令,請使用–changeor-c標(biāo)志:

docker commit --change 'ENTRYPOINT ["sh"]' example-container example-image:latest

您可以根據(jù)需要多次重復(fù)該標(biāo)志以應(yīng)用所有預(yù)期的更改。

僅支持影響最頂層文件系統(tǒng)層的指令。您無法通過 和 等指令無縫擴展已提交的圖像與新RUN層COPY。但是,如果需要,您可以獲取提交的結(jié)果并編寫一個新的 Dockerfile 來添加新內(nèi)容:

# Created via `docker commit`
FROM example-image:latest
RUN apt install example-package

如果您確實在提交時更改了 Dockerfile 指令,則值得添加一條提交消息來解釋您正在修改的內(nèi)容以及原因。這將幫助任何其他有權(quán)訪問圖像的人了解與創(chuàng)建圖像的容器相比的任何行為差異。

概括
Docker 鏡像通常由 Dockerfiles 構(gòu)建并用于啟動一次性容器。對容器文件系統(tǒng)狀態(tài)的更改是通過重建鏡像、銷毀現(xiàn)有容器和啟動新容器來實現(xiàn)的。在理想世界中,容器沒有任何內(nèi)部狀態(tài),但在實踐中并非總是如此。

提交容器為您提供了一種在未來恢復(fù)其當(dāng)前文件系統(tǒng)的方法。提交對于創(chuàng)建麻煩容器的副本很有用,因此您可以在單獨的環(huán)境中進行調(diào)試,同時保持對先前生成的日志和臨時文件的訪問。

盡管容器提交通常感覺類似于 VM 快照,但它們并不完全相同。VM 控制虛擬硬件,并且該硬件的狀態(tài)將出現(xiàn)在快照中。Docker 容器只是主機上運行的一組進程;提交是一個新的 Docker 映像,它代表容器的文件系統(tǒng),但必然缺少有關(guān)進程、內(nèi)核和硬件狀態(tài)的任何數(shù)據(jù)。

到此這篇關(guān)于如何從正在運行的容器創(chuàng)建 Docker 映像的文章就介紹到這了,更多相關(guān)容器創(chuàng)建 Docker 映像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

年辖:市辖区| 青海省| 铁岭县| 新建县| 文成县| 工布江达县| 宁陵县| 景东| 汪清县| 松滋市| 宁陵县| 屏南县| 忻州市| 贡嘎县| 定陶县| 天津市| 镇康县| 新乡县| 浮山县| 清新县| 桦南县| 平安县| 睢宁县| 台南市| 金堂县| 杨浦区| 陇川县| 顺平县| 松原市| 湖南省| 广州市| 巴青县| 金塔县| 怀宁县| 师宗县| 工布江达县| 耿马| SHOW| 鄱阳县| 旺苍县| 尼玛县|