微服务模式:如何基于已有镜像修改替换镜像文件后生成新镜像?

已邀请:

场景:当前运行的镜像存在部分问题,希望基于当前的镜像内的代码内容,进行调整。调整后生成新镜像版本,提供验证使用。


1、比如要修改fi-gl的镜像,通过镜像属性页,确认镜像名称为fi-gl,运行主机为10.16.4.149

/uploads/files_user1/answer/5e96b8a1bb4d5304568.png


2、登录主机10.16.4.149,查询镜像ID

docker ps | grep test-fi-gl-5699c9fdfb-8rsrg

/uploads/files_user1/answer/5e96da230c26c195074.png

确认容器ID:7b2d91a27fa6

3、登录容器,进行文件上传、复制、替换等修改。

docker exec -it 7b2d91a27fa6 /bin/bash

/uploads/files_user1/answer/5e96da9e98f3c892279.png

4、确认仓库信息解析正确

ping reg.yyuap.io

/uploads/files_user1/answer/5e96dc5ab7d4d664407.png

5、修改完成后,退出容器,到宿主机以已修改的镜像为蓝本创建新镜像,并tag。

docker commit -a="nxz" -m="niuxiaozheng" 7b2d91a27fa6 reg.yyuap.io/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/fi-gl:v2020

#nxz=作者
#m=描述
#c5c7c96abcdd=刚刚修改的容器ID
#reg.yyuap.io/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/fi-gl =镜像名
#v2020=镜像的版本tag
#注意:这里的reg.yyuap.io应确认已解析到当前目标镜像仓库

/uploads/files_user1/answer/5e96dd1f5672a938118.png

6、登录目标镜像仓库,确认登录成功

docker login -u admin -p Harbor12345 reg.yyuap.io

/uploads/files_user1/answer/5e96dcafa0d58566372.png

7、推送镜像到仓库

docker push reg.yyuap.io/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/fi-gl:v2020

/uploads/files_user1/answer/5e96dd3d5e121344248.png

8、将镜像版本推送至开发者中心

curl -X POST "http://10.10.4.123/app-docker-registry/api/registry/push?providerId=c87e2267-1001-4c70-bb2a-ab41f3b81aa3&userName=%E7%AE%A1%E7%90%86%E5%91%98&userId=c87e2267-1001-4c70-bb2a-ab41f3b81aa3&imageName=reg.yyuap.io/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/fi-gl&tag=v2020"

#  10.16.4.123 = 开发者中心IP
#  reg.yyuap.io/c87e2267-1001-4c70-bb2a-ab41f3b81aa3/fi-gl&tag=v2020 =镜像名称+版本

9、即可登录开发者中心更换对应服务的镜像。

要回复问题请先登录注册