Docker将镜像文件发布到私服库
上一篇已经介绍如何将镜像发布到阿里云:https://www.cnblogs.com/sportsky/p/16246394.html
一、创建新镜像文件
1、创建容器并在容器内创建文件
在根目录下创建 /xiaohemiao/test.txt 并在test.txt文件中写入一些内容
2、提交容器副本使之成为一个新的镜像
# 提交格式
docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名,也就是版本号]
二、本地镜像推送到私有库
1、下载镜像Docker Registry
docker pull registry
2、创建本地私有容器库
# 创建一个名为registry的容器,将宿主机5000端口映射到容器的5000端口,将宿主机的/myregistry目录映射到容器/tmp/registry目录作为数据容器卷
docker run -id -p 5000:5000 -v /myregistry/:/tmp/registry --privileged=true registry
默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便与宿主机联调
3、curl验证私服库上的镜像
# IP地址是自己宿主机的ip,端口号是刚刚创建容器映射的宿主机端口
curl -XGET http://192.168.140.129:5000/v2/_catalog
4、将新镜像myredis:latest修改符合私服规范的Tag
# 格式 docker tag 镜像名称:版本号 ip:端口/镜像名称:版本号
docker tag myredis:latest 192.168.140.129:5000/myredis:latest
5、修改配置文件使之支持http
1 | vi /etc/docker/daemon.json |
添加如下配置:insecure-registries":["192.168.140.129:5000"]
上述理由:docker默认不允许http方式推送镜像,通过配置选项来取消这个限制,修改完后如果不生效,建议重启docker
6、push推送到私服库
# 后台配置重新加载
systemctl daemon-reload
# 重启docker服务
systemctl restart docker
# 查看配置的端口号(5000)是否开启(非必要)
netstat -nlpt
# 推送到私服
docker push 192.168.140.129:5000/myredis:latest
7、重新查看私服库镜像有哪些
# 查看私服镜像文件(ip地址修改成自己宿主机的ip)
curl -XGET http://192.168.140.129:5000/v2/_catalog
三、pull私服镜像
首先先删掉目前docker上的镜像,然后再从私服镜像pull
# pull私服镜像(ip地址填写当前宿主机的ip和端口)
docker pull 192.68.140.129:5000/myredis:latest
================================Ending 大功告成 !===========================================
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix