摘要:而且要注意到一般采用的是軟件的版本號作為,而不是構建日期作為。比如你有版本,那你應該定期從軟件倉庫中下載這三個版本的構建物,然后對為它們構建。對于版,你應該將構建的過程融入到軟件的構建過程中。
原文
Image tag是不穩定的Docker image的tag是不穩定的,這句話的意思是就算tag不變,其所代表的image并非一成不變,例如openjdk:8在去年代表jdk 8u161今年則代表jdk 8u191。就算你使用openjdk:8u181也不能保證這個image是不變的,為什么這么說?
一個Docker image大致是由4部分組成的:
其依賴的基礎鏡像,由Dockerfile的FROM指令所指定
其所包含的軟件,在這個例子里就是 openjdk 8u181
Dockerfile的其他腳本
啟動入口,比如docker-entrypoint.sh
就算軟件不發生變化,另外3個也是有可能發生變化的,而構建的新image的tag依然是openjdk:8u181。而且要注意到一般采用的是軟件的版本號作為tag,而不是commit、構建日期作為tag。如果你是Java程序員,可以類比docker image tag為maven的SNAPSHOT。
那這意味著什么?
從docker image使用方角度,每次啟動之前都需要pull一下,確保使用了新的image
從docker image提供方角度,就算你的軟件版本已經凍結,你仍然需要定期構建image并發布倉庫上
針對穩定與非穩定版本的構建策略和Maven的版本定義一樣,你的軟件應該分為兩種:
stable版,即一旦發布其版本號對應的代碼不會再做修改
snapshot版,又稱nightly-build版,即該版本號對應的代碼是不穩定的
對于stable版,你應該定期對其構建image。比如你有版本1.0、1.1、1.2,那你應該定期從軟件倉庫中下載這三個版本的構建物,然后對為它們構建image。以Maven舉例,定期從Maven倉庫下載它們的Jar,然后為它們構建image。記得確保docker build添加了--pull選項。
對于snapshot版,你應該將構建image的過程融入到軟件的構建過程中。以Maven為例,使用spotify-dockerfile-plugin,mvn clean install dockerfile:build dockerfile:push。
不論是stable版還是snapshot版,都應該利用CI/CD工具(如Jenkins)將image構建工作自動化。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27688.html
摘要:年月發布了內核對進行了重新設計。年發布了內核更加徹底的改造了,稱為,并且認可其已經穩定。集群工具,多宿主管理運行。通過的設置通過設置將設置上標簽。使用兩種方式傳遞給宿主其的主機位置,環境變量和文件。 https://www.youtube.com/watch?v=heBI7oQvHZU http://v.qq.com/page/o/8/j/o03134mlm8j.html 基本介紹 D...
摘要:容器運行時,會打印一條信息消息并退出。因此,更好地做法是將需要使用的用戶加入用戶組。涉及到了兩條指令,和。執行命令指令是用來執行命令行命令的。 Docker 是個劃時代的開源項目,它徹底釋放了計算虛擬化的威力,極大提高了應用的運行效率,降低了云計算資源供應的成本!使用 Docker,可以讓應用的部署、測試和分發都變得前所未有的高效和輕松! 無論是應用開發者、運維人員、還是其他信息技術從...
摘要:容器運行時,會打印一條信息消息并退出。因此,更好地做法是將需要使用的用戶加入用戶組。涉及到了兩條指令,和。執行命令指令是用來執行命令行命令的。 Docker 是個劃時代的開源項目,它徹底釋放了計算虛擬化的威力,極大提高了應用的運行效率,降低了云計算資源供應的成本!使用 Docker,可以讓應用的部署、測試和分發都變得前所未有的高效和輕松! 無論是應用開發者、運維人員、還是其他信息技術從...
閱讀 2872·2021-10-14 09:42
閱讀 3186·2019-08-30 15:52
閱讀 3279·2019-08-30 14:02
閱讀 1117·2019-08-29 15:42
閱讀 541·2019-08-29 13:20
閱讀 1169·2019-08-29 12:24
閱讀 489·2019-08-26 10:20
閱讀 690·2019-08-23 18:31