溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何構(gòu)建docker鏡像

發(fā)布時間:2021-11-19 16:42:33 來源:億速云 閱讀:156 作者:柒染 欄目:云計算

本篇文章為大家展示了如何構(gòu)建docker鏡像,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

對于 Docker 用戶來說,最好的情況是不需要自己創(chuàng)建鏡像。幾乎所有常用的數(shù)據(jù)庫、中間件、應(yīng)用軟件等都有現(xiàn)成的 Docker 官方鏡像或其他人和組織創(chuàng)建的鏡像,我們只需要稍作配置就可以直接使用。

使用現(xiàn)成鏡像的好處除了省去自己做鏡像的工作量外,更重要的是可以利用前人的經(jīng)驗(yàn)。特別是使用那些官方鏡像,因?yàn)?Docker 的工程師知道如何更好的在容器中運(yùn)行軟件。

當(dāng)然,某些情況下我們也不得不自己構(gòu)建鏡像,比如:

  1. 找不到現(xiàn)成的鏡像,比如自己開發(fā)的應(yīng)用程序。

  2. 需要在鏡像中加入特定的功能,比如官方鏡像幾乎都不提供 ssh。

所以本節(jié)我們將介紹構(gòu)建鏡像的方法。同時分析構(gòu)建的過程也能夠加深我們對前面鏡像分層結(jié)構(gòu)的理解。

Docker 提供了兩種構(gòu)建鏡像的方法:

  1. docker commit 命令

  2. Dockerfile 構(gòu)建文件

docker commit

docker commit 命令是創(chuàng)建新鏡像最直觀的方法,其過程包含三個步驟:

  1. 運(yùn)行容器

  2. 修改容器

  3. 將容器保存為新的鏡像

舉個例子:在 ubuntu base 鏡像中安裝 vi 并保存為新鏡像。

  1. 第一步, 運(yùn)行容器 
    如何構(gòu)建docker鏡像
    -it 參數(shù)的作用是以交互模式進(jìn)入容器,并打開終端。412b30588f4a 是容器的內(nèi)部 ID。

  2. 安裝 vi
    如何構(gòu)建docker鏡像
    新鏡像命名為 ubuntu-with-vi。

    查看新鏡像的屬性。
    從 size 上看到鏡像因?yàn)榘惭b了軟件而變大了。

    從新鏡像啟動容器,驗(yàn)證 vi 已經(jīng)可以使用。

以上演示了如何用 docker commit 創(chuàng)建新鏡像。然而,Docker 并不建議用戶通過這種方式構(gòu)建鏡像。原因如下:

  1. 這是一種手工創(chuàng)建鏡像的方式,容易出錯,效率低且可重復(fù)性弱。比如要在 debian base 鏡像中也加入 vi,還得重復(fù)前面的所有步驟。

  2. 更重要的:使用者并不知道鏡像是如何創(chuàng)建出來的,里面是否有惡意程序。也就是說無法對鏡像進(jìn)行審計,存在安全隱患。

既然 docker commit 不是推薦的方法,我們干嘛還要花時間學(xué)習(xí)呢?

原因是:即便是用 Dockerfile(推薦方法)構(gòu)建鏡像,底層也 docker commit 一層一層構(gòu)建新鏡像的。學(xué)習(xí) docker commit 能夠幫助我們更加深入地理解構(gòu)建過程和鏡像的分層結(jié)構(gòu)。

上述內(nèi)容就是如何構(gòu)建docker鏡像,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI