想象一下,我docker-compose.yml要添加mongo為容器,在影像名稱前面設定版本還是默認為最新版本是一件好事嗎?
version: '3.8'
services:
mongo:
image: mongo:4.0
ports:
- "27017:27017"
實際上在開發和生產中應用的優缺點是什么?
image: mongo:4.0 VS image: mongo
uj5u.com熱心網友回復:
包括您所做的版本號是一種很好的做法。我通常會使用僅主要影像標簽 ( mongo:4) 或主要 次要標簽 ( mongo:4.4),但不會使用超級特定版本 ( mongo:4.4.10),除非您有自動定期更新它。
通常,Docker Hub 鏡像會定期重建;但是,在給定的補丁系列中,只有最新版本才能獲得補丁。假設debian:focal基礎鏡像獲得了安全更新。在撰寫本文時,mongo影像具有4、4.4和4.4.10標簽,因此所有這些都會被重建,但例如 4.4.9不會。因此,使用過于特定的版本可能意味著您無法獲得重要的更新。
相反,使用latest意味著你根本不在乎你有什么版本。您的問題提到mongo:4.0但mongo:latest目前是 5.0.5 版;該主要版本升級是否存在兼容性問題?
這里的關鍵規則是:
- 如果您在
image:tag本地已經有了一些,即使在存盤庫中更新了它,啟動容器也不會再次拉取它。 mongo:4.4只要受支持,像這樣的次要版本標簽就會繼續獲得更新,但您可能需要docker-compose pull獲得更新。mongo:4.4.9只要有更新的補丁版本,補丁版本標簽就會停止獲取更新,即使你docker pull mongo:4.4.9.- 使用浮動標簽之類的
...:latest或次要版本標簽可能意味著不同的系統獲得不同的鏡像構建,這取決于它們在本地擁有什么。(您的同事可能mongo:latest與您不同;這在 Kubernetes 等集群環境中是一個更大的問題。)
uj5u.com熱心網友回復:
我覺得把版本放在鏡像名前面是件好事,這樣管理起來更方便,但要注意定期通過更新,以免出現漏洞。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/388085.html
標籤:码头工人 docker-compose 文件
