本地已制作镜像:tomcat-8.5.100-centos7.9:1.0。
本地已经搭建私有仓库:harbor.igmwx.com。
现在需要把镜像 tomcat-8.5.100-centos7.9:1.0 推送到harbor。
(1)查看本地镜像:sudo docker images
zhangzk@zhangzk:~/docker-images$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat-8.5.100-centos7.9 1.0 dfdcdb0e0086 About a minute ago 495MB
(2)修改/etc/docker/daemon.json
测试用的harbor(harbor.igmwx.com)是用openssl生成的自签名证书,需要在docker中说配置才能使用,如果没有/etc/docker/daemon.json文件则需要创建,增加如下代码。
{
"insecure-registries": ["harbor.igmwx.com"]
}
(3)在harbor中创建项目:zhangzk,创建用户:zhangzk.
如果有现成的harbor项目和用户可以直接跳过本步骤。
(4)重启docker守护进程(ubuntu)
重启docker守护进程才能让上述的配置生效。
sudo systemctl restart docker
(5)登陆harbor
使用用户zhangzk来登录harbor。
命令为:sudo docker login harbor.igmwx.com
hangzk@zhangzk:~/harbor$ sudo docker login harbor.igmwx.com
Username: zhangzk
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
(6)给镜像打标签
- 在推送之前,你需要为镜像打上与Harbor仓库地址和项目名相匹配的标签。
- 命令格式:docker tag <原始镜像名称>:<标签> <Harbor仓库地址>/<项目名>/<镜像名称>:<新标签>
- 示例:假设你的Harbor项目名为zhangzk,你想推送的镜像名为tomcat-8.5.100-centos7.9,则命令为:
sudo docker tag tomcat-8.5.100-centos7.9:1.0 harbor.igmwx.com/zhangzk/tomcat-8.5.100-centos7.9:1.0
(7)推送镜像到Harbor仓库
- 使用docker push命令将镜像推送到Harbor仓库。
- 命令格式:docker push <Harbor仓库地址>/<项目名>/<镜像名称>:<标签>
sudo docker push harbor.igmwx.com/zhangzk/tomcat-8.5.100-centos7.9:1.0
(8)在harbor仓库中查看推送的镜像
至此镜像已经推送OK,就等着k8s来使用了。