亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker容器commit打包越來越大的原因分析及解決

 更新時(shí)間:2025年03月07日 09:48:45   作者:nanke_yh  
文章介紹了Docker容器打包變大的原因,并提供了解決方法,具體步驟包括使用export命令導(dǎo)出容器,然后使用import命令導(dǎo)入鏡像,最后將鏡像展開成容器,這種方法可以有效減少鏡像文件的大小,避免因Docker鏡像層的概念導(dǎo)致的文件膨脹問題

docker容器commit打包越來越大

一、背景和原因

docker容器就是以便于移植和部署著稱。那么在docker使用過程中,少不了對(duì)容器進(jìn)行反復(fù)的的打包和部署。

為了追求容器完整性,往往使用docker commit 容器ID 新鏡像名:tag 來操作,再使用save/load對(duì)其進(jìn)行打包/部署鏡像。

但是根據(jù)上面的命令操作往往發(fā)現(xiàn),即使很小的容器經(jīng)過上述步驟操作幾次后得到的鏡像仍舊會(huì)變得很大很大(即使容器內(nèi)的文件都被刪掉了)。

這主要是由于:

docker鏡像的構(gòu)建方式是以層的概念來實(shí)現(xiàn)的,在容器內(nèi)所做的所有操作都會(huì)在構(gòu)建鏡像時(shí)運(yùn)行一遍,每一個(gè)操作所涉及到的內(nèi)存空間, 都會(huì)成為鏡像文件的一部分。

看到的大都是壓縮容器根目錄制作基礎(chǔ)鏡像或者操作Dockerfile之類的,相對(duì)就比較復(fù)雜,或者不是我們想要的答案。

以下參考文章中的方法1給出比較詳細(xì)好用的解決方法步驟。

二、解決方法

為了減少鏡像文件所占內(nèi)容空間,采用export直接打包容器,然后通過import導(dǎo)入鏡像,繼而展開成容器。

1、可采用export命令打包容器生成鏡像文件

docker export -o name.tar 容器ID
或者docker export 容器ID > name.tar

注:此時(shí)必須記下當(dāng)前容器的COMMAND內(nèi)容,后面要用到。

2、加載成鏡像

生成的tar鏡像包就可以進(jìn)行移植和部署,假設(shè)換了一臺(tái)機(jī)器后部署該鏡像,加載鏡像可采用的命令:

docker import name.tar 容器name:tag

3、將鏡像展開成容器

如果正常使用的docker run命令時(shí)將會(huì)出現(xiàn)報(bào)錯(cuò):

docker: Error response from daemon: No command specified.
See 'docker run --help'.
此時(shí)就體現(xiàn)第1步中需要記住的COMMAND內(nèi)容的重要性了。

如果原環(huán)境還在,可通過 docker ps --no-trunc 查看你原容器的COMMAND。假設(shè)原容器的COMMAND為"bash"。

將原來使用export導(dǎo)出鏡像時(shí)的容器COMMAND內(nèi)容追加到要啟動(dòng)容器后面即可:

docker run -itd --restart=always --name xxx xxx:latest "bash"

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論