docker搭建私有仓库
1、安装运行私有register容器
1 | docker run -d -v /myregistry:/ var /lib/registry -p 5000:5000 --name xuRegistry registry |
参数说明:
-d 后台启动容器
-p 端口映射 将容器的5000端口映射到Host的5000端口
-v 将容器的/var/lib/registry目录映射到Host的myregistry,用于存放镜像数据
验证是否成功可以通过访问 http:// host:5000/v2
2、push镜像到仓库
Note:以推送hello-world到私有仓库为例
2.1 docker images查看所有镜像
2.2 通过docker tag将hello-world镜像标志为要推送到私有仓库,镜像名称由repository和tag两部分组成
而repository的完整格式为:host:post/username/xxx,只有Docker Hub上的镜像可以省略:host:post
1 | docker tag hello-world:latest hostip:5000/xu/hello-world:latest |
2.3 通过 docker push 命令将hello-world镜像 push到私有仓库中
1 | docker push hostip:5000/xu/hello-world:latest |
Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以下错误。
http: server gave HTTP response to HTTPS client
解决方案:
方案一:
1 | vim /usr/lib/systemd/system/docker.service |
在12行后面增加 --insecure-registry host:5000
修改好后重启docker 服务
1 2 3 | systemctl daemon-reload systemctl restart docker.service |
重启docker服务后,将容器重启
1 | docker start $(docker ps -aq) |
方案二:
1 | vim /etc/docker/daemon.json<strong style= "background-color: rgba(255, 255, 255, 1); font-family: "PingFang SC", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px" > </strong> |
增加内容
1 2 3 | { "insecure-registries" : [ "host:5000" ] } |
修改好后重启docker 服务
1 2 3 | systemctl daemon-reload systemctl restart docker.service |
重启docker服务后,将容器重启
1 | docker start $(docker ps -aq) |
然后重新push到私有库,应该就能成功了
可以通过访问host:5000/v2/_catalog验证推送是否成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?