Docker镜像推送到私有仓库完整指南:从命名规范到AWS ECR实战
镜像构建好了放在本地只有自己能看见。团队其他人怎么用部署服务器怎么拉你需要一个私有镜像仓库。今天这篇文章我们用AWS ECRElastic Container Registry做例子从创建仓库到推送镜像把整个流程走一遍。你在任何私有仓库Nexus、阿里云ACR、华为云SWR上的操作原理都是一样的。一、先搞懂Docker镜像的完整名字平时我们拉镜像写的是bashdocker pull mongo:4.2其实这只是简写。完整的名字是textdocker.io/library/mongo:4.2docker.io仓库地址Docker Hublibrary/mongo镜像名4.2版本标签因为Docker默认仓库是Docker Hub所以可以省略。私有仓库没有默认值必须写完整的地址。二、在AWS ECR创建仓库AWS ECR的规则比较特殊一个镜像对应一个仓库。同一个仓库里存的是这个镜像的不同版本不同标签。登录AWS控制台进入ECR服务点击“创建仓库”输入仓库名比如my-app其他默认创建完成。创建后仓库是空的。三、推送镜像三步走第一步登录AWS会给你生成一条登录命令复制执行即可bashaws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 你的AWS账号ID.dkr.ecr.us-east-1.amazonaws.com这条命令的本质就是docker login只是AWS帮你封装好了。前提本地已经安装并配置好AWS CLI。第二步给本地镜像打标签本地镜像的名字是my-app:1.0直接push会推送到Docker Hub。必须改成ECR的完整地址。bashdocker tag my-app:1.0 你的AWS账号ID.dkr.ecr.us-east-1.amazonaws.com/my-app:1.0docker tag的作用是给镜像创建一个新名字新标签指向同一个镜像。不会复制文件不占额外空间。第三步推送bashdocker push 你的AWS账号ID.dkr.ecr.us-east-1.amazonaws.com/my-app:1.0推送时Docker会分层上传已经存在于仓库的层不会重复上传。刷新ECR页面就能看到刚刚推送的镜像了。四、推送新版本代码改了重新构建镜像换个版本号bash# 构建新版本 docker build -t my-app:1.1 . # 打标签同一个仓库换版本号 docker tag my-app:1.1 AWS账号ID.dkr.ecr.us-east-1.amazonaws.com/my-app:1.1 # 推送 docker push AWS账号ID.dkr.ecr.us-east-1.amazonaws.com/my-app:1.1同一个仓库里会出现两个版本。ECR单个仓库最多支持1000个版本。五、CI/CD中的镜像推送在Jenkins等CI服务器上流程和本地完全一样配置私有仓库的访问凭证执行docker login构建镜像docker tag打标签docker push推送登录只需要做一次后续推送不需要重复登录。写在最后推送镜像到私有仓库核心就三步docker login证明你是谁docker tag告诉Docker推送到哪里docker push上传无论用的是AWS ECR、Nexus、阿里云ACR原理都一样。搞懂命名规范和推送流程你就能在任何私有仓库间自由穿梭。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2494076.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!