欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

刪除docker容器中內(nèi)容后打包鏡像不變小問題及解決

 更新時間:2025年03月07日 08:44:57   作者:一米陽光zw  
文章討論了在Docker中處理大壓縮包時遇到的問題,以及如何通過分層存儲和使用`docker load`與`docker import`命令來解決鏡像大小過大的問題

問題

之前一直有這個問題困擾我,不知道大家有沒有遇到過,當(dāng)我們在容器中部署某個軟件時如果軟件的壓縮包比較大那我們可能需要把壓縮包刪除后再去做鏡像,此時你會發(fā)現(xiàn)鏡像還是兩個壓縮包左右的大小,甚至刪除后鏡像可能會更大,這個問題就很容易導(dǎo)致鏡像越來越大無法維護(hù),最近找到了一個解決方法,在這里分享一下

分析

這個跟docker的原理有關(guān)系,因?yàn)殓R像是按照層存儲,這樣做最大好處很直觀,版本更新時只需要下載軟件的下一層相當(dāng)于是軟件的增量包大概是這個意思,而如果你不分層就需要下載軟件的全量包這樣的話十分麻煩。

用戶既可以使用 docker load 來導(dǎo)入鏡像存儲文件到本地鏡像庫,也可以使用 docker import 來導(dǎo)入一個容器快照到本地鏡像庫。

這兩者的區(qū)別在于容器快照文件將丟棄所有的歷史記錄和元數(shù)據(jù)信息(即僅保存容器當(dāng)時的快照狀態(tài)),而鏡像存儲文件將保存完整記錄,體積也要大。此外,從容器快照文件導(dǎo)入時可以重新指定標(biāo)簽等元數(shù)據(jù)信息。

解決

知道了原因的話那解決也會相對簡單一些,既然docker load會保存文件的歷史記錄和原數(shù)據(jù),那我們使用docker import導(dǎo)入容器的快照就可以了。

大概就是恢復(fù)到打包容器時候的樣子,是一個快照,沒有歷史記錄。

導(dǎo)出容器

如果要導(dǎo)出本地某個容器,可以使用 docker export 命令

格式如下:

docker export ContainerId > containerPackage.tar

ContainerId 代表容器id,containerPackage.tar壓縮包名稱這個無所謂

查看容器id:

導(dǎo)出容器快照為tar文件

這樣將導(dǎo)出容器快照到本地文件,等待完成,查看文件

導(dǎo)入容器快照

使用 docker import 從容器快照文件中再導(dǎo)入為鏡像

格式如下:

cat edas.tar  | docker import - luntek/centos_edatest:1.0

edas.tar為容器快照,luntek應(yīng)該是倉庫名稱,centos_edatest是項(xiàng)目名稱

上傳鏡像

docker push luntek/images_name:tag

如果docker鏡像太大上傳的過程中可能會報錯Retrying in 10 second

解決:

編輯/etc/selinux/config文件,關(guān)閉SELINUX,將值設(shè)置為disabled

vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

總結(jié)

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

相關(guān)文章

  • 使用Maven打包構(gòu)建Docker鏡像并推送到倉庫

    使用Maven打包構(gòu)建Docker鏡像并推送到倉庫

    這篇文章主要介紹了使用Maven打包構(gòu)建Docker鏡像并推送到倉庫問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 關(guān)于Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目詳解

    關(guān)于Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目詳解

    這篇文章主要介紹了關(guān)于Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目詳解,Docker在創(chuàng)建容器時有四種網(wǎng)絡(luò)模式,bridge為默認(rèn)不需要去指定,其他三種模式需要在創(chuàng)建容器時使用–net去指定,需要的朋友可以參考下
    2023-07-07
  • Rancher+Docker+SpringBoot實(shí)現(xiàn)微服務(wù)部署、擴(kuò)容、環(huán)境監(jiān)控

    Rancher+Docker+SpringBoot實(shí)現(xiàn)微服務(wù)部署、擴(kuò)容、環(huán)境監(jiān)控

    Rancher?是一套容器管理平臺,可以在生產(chǎn)環(huán)境中快捷的部署和管理容器,方便的對容器進(jìn)行cpu內(nèi)存環(huán)境監(jiān)控、日志監(jiān)控、擴(kuò)容縮容,自動重啟,這篇文章主要介紹了Rancher+Docker+SpringBoot實(shí)現(xiàn)微服務(wù)部署、擴(kuò)容、環(huán)境監(jiān)控,需要的朋友可以參考下
    2022-04-04
  • docker實(shí)踐之docker-compose部署mysql方式

    docker實(shí)踐之docker-compose部署mysql方式

    這篇文章主要介紹了docker實(shí)踐之docker-compose部署mysql方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • docker push遇到unknown blob問題解決

    docker push遇到unknown blob問題解決

    這篇文章主要為大家介紹了docker push遇到unknown blob問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Docke中安裝redis的方法

    Docke中安裝redis的方法

    這篇文章主要介紹了Docke中安裝redis的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • docker如何查詢鏡像版本信息

    docker如何查詢鏡像版本信息

    這篇文章主要介紹了docker如何查詢鏡像版本信息問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 非docker方式部署openwebui的完整過程記錄

    非docker方式部署openwebui的完整過程記錄

    這篇文章主要介紹了從使用Docker部署OpenWebUI到直接部署的切換過程,包括停止并刪除未使用的Docker鏡像以釋放硬盤空間,并記錄了直接部署的具體步驟,需要的朋友可以參考下
    2025-02-02
  • 使用Docker快速搭建你的Gitbook

    使用Docker快速搭建你的Gitbook

    這篇文章主要介紹了使用Docker快速搭建你的Gitbook的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 詳解docker鏡像centos7配置Java運(yùn)行環(huán)境

    詳解docker鏡像centos7配置Java運(yùn)行環(huán)境

    基于docker官網(wǎng)centos7鏡像配置java運(yùn)行環(huán)境,自己安裝jdk和tomcat,解決docker容器與宿主機(jī)時間不一致問題
    2017-05-05

最新評論