如何制作docker镜像

这里主要是指基于其他同事已有的镜像,制作我自定义的镜像;而不是从无到有制作一个全新的镜像。

环境信息

docker环境

docker服务器是:ip.of.docker.server;可以通过测试服务器ssh跳过去。账号找WHB申请。目前我用的是LG的账号。

外网镜像仓库

http://hub.hexin.cn/harbor/projects

公司内部做了域名解析,本地不需要配置host,可以直接访问。

操作步骤

先从外网镜像仓库把初始镜像拉下来,并启动一个容器(我是基于ifind的容器来构建的):

sudo docker run -tid hub.hexin.cn:9082/ths/ifind-financial-report:FinancialReport_139559_201807131958

进入容器,修改内容,安装软件:

sudo docker exec -ti xxxx /bin/bash

将容器保存为镜像:

sudo docker commit 容器ID 新的镜像名称

修改镜像名称,使其符合规范:

sudo docker tag springboot-1.5.6 hub.hexin.cn:9082/b2cweb/springboot-1.5.6:latest

注意1:镜像名【必须】要按照这个格式命名,否则push的时候会被拒绝:

hub.hexin.cn:9082/用户名/镜像名:tag

注意2:修改tag后,原来的镜像还是存在的,如果不要了,记得删除掉,避免占用空间

查看下镜像名是否修改成功:

sudo docker images|grep 新的tag名

登录镜像管理平台:

sudo docker login hub.hexin.cn:9082
账号密码同外网镜像仓库的账号密码

将镜像推到仓库:

sudo docker push hub.hexin.cn:9082/b2cweb/springboot-1.5.6:latest

调用http接口,将镜像从外网仓库同步到内网仓库:

http://x.x.x.x/syncimage?srcHub=hub.hexin.cn:9082&dstHub=hub-dev.hexin.cn:9544&group=b2cweb&image=springboot-1.5.6&tag=latest

image:改为自己的镜像名称
tag:改为刚刚构建生成的镜像版本号

现在,可以在内网使用刚上传的这个镜像了。