共計 1013 個字符,預計需要花費 3 分鐘才能閱讀完成。
本篇文章為大家展示了如何構建 docker 鏡像,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
對于 Docker 用戶來說,最好的情況是不需要自己創(chuàng)建鏡像。幾乎所有常用的數(shù)據(jù)庫、中間件、應用軟件等都有現(xiàn)成的 Docker 官方鏡像或其他人和組織創(chuàng)建的鏡像,我們只需要稍作配置就可以直接使用。
使用現(xiàn)成鏡像的好處除了省去自己做鏡像的工作量外,更重要的是可以利用前人的經(jīng)驗。特別是使用那些官方鏡像,因為 Docker 的工程師知道如何更好的在容器中運行軟件。
當然,某些情況下我們也不得不自己構建鏡像,比如:
找不到現(xiàn)成的鏡像,比如自己開發(fā)的應用程序。
需要在鏡像中加入特定的功能,比如官方鏡像幾乎都不提供 ssh。
所以本節(jié)我們將介紹構建鏡像的方法。同時分析構建的過程也能夠加深我們對前面鏡像分層結構的理解。
Docker 提供了兩種構建鏡像的方法:
docker commit 命令
Dockerfile 構建文件
docker commit
docker commit 命令是創(chuàng)建新鏡像最直觀的方法,其過程包含三個步驟:
運行容器
修改容器
將容器保存為新的鏡像
舉個例子:在 ubuntu base 鏡像中安裝 vi 并保存為新鏡像。
第一步,運行容器
-it 參數(shù)的作用是以交互模式進入容器,并打開終端。412b30588f4a 是容器的內部 ID。
安裝 vi
新鏡像命名為 ubuntu-with-vi。
查看新鏡像的屬性。
從 size 上看到鏡像因為安裝了軟件而變大了。
從新鏡像啟動容器,驗證 vi 已經(jīng)可以使用。
以上演示了如何用 docker commit 創(chuàng)建新鏡像。然而,Docker 并不建議用戶通過這種方式構建鏡像。原因如下:
這是一種手工創(chuàng)建鏡像的方式,容易出錯,效率低且可重復性弱。比如要在 debian base 鏡像中也加入 vi,還得重復前面的所有步驟。
更重要的:使用者并不知道鏡像是如何創(chuàng)建出來的,里面是否有惡意程序。也就是說無法對鏡像進行審計,存在安全隱患。
既然 docker commit 不是推薦的方法,我們干嘛還要花時間學習呢?
原因是:即便是用 Dockerfile(推薦方法)構建鏡像,底層也 docker commit 一層一層構建新鏡像的。學習 docker commit 能夠幫助我們更加深入地理解構建過程和鏡像的分層結構。
上述內容就是如何構建 docker 鏡像,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業(yè)資訊頻道。