【原創】運維基礎之Docker(7)關於docker latest tag


Docker images have a tag named latest which doesn’t work as you expect.
Latest is just a tag with a special name.
“Latest” simply means “the last build/tag that ran without a specific tag/version specified”.
Just version your tags. Every time.

docker image有一個tag叫做latest,latest通過最近一次沒有指定版本的build或tag來生成

下面實驗來看:

$ docker tag imagename localhost:5000/imagename
$ docker push localhost:5000/imagename

這樣可以在repository上創建一個版本為latest的imagename,下一次更新操作如下:

1)先停止使用舊的image的container並刪除,然后刪除舊的image

$ docker stop $container_id
$ docker rm $container_id
$ docker rmi localhost:5000/imagename

2)同上

$ docker tag imagename localhost:5000/imagename
$ docker push localhost:5000/imagename

這種方式不會保留歷史版本;

更好的做法是:

1)版本1

$ docker tag imagename localhost:5000/imagename:1
$ docker push localhost:5000/imagename:1
$ docker tag imagename localhost:5000/imagename
$ docker push localhost:5000/imagename

這時latest=1

2)版本2

$ docker tag imagename localhost:5000/imagename:2
$ docker push localhost:5000/imagename:2

$ docker stop $container_id
$ docker rm $container_id
$ docker rmi localhost:5000/imagename
$ docker tag imagename localhost:5000/imagename
$ docker push localhost:5000/imagename

這時latest=2


參考:
https://medium.com/@mccode/the-misunderstood-docker-tag-latest-af3babfd6375
https://stackoverflow.com/questions/39352186/update-a-docker-image-in-registry

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM