docker搭建私有仓库

1、下载运行register容器
$ docker run -d -v /Users/miuye/Public/registry:/var/lib/registry -p 5000:5000 --name myRegistry registry
1
/Users/miuye/Public/registry是我个人的挂载的本地目录,push到该仓库的镜像会保存在该路径下。

安装完成后,可以通过访问http://127.0.0.1:5000/v2进行验证,看到如下图片就说明成功了。

2、push镜像到仓库
2.1 通过docker images可以查看目前有的镜像

以httpd作为实验对象推送到私有仓库中。

2.2 通过docker tag将该镜像标志为要推送到私有仓库
$ docker tag httpd:1.0 localhost:5000/httpd:1.0
1

 

2.3 通过 docker push 命令将 httpd 镜像 push到私有仓库中
$ docker push localhost:5000/httpd:1.0
1
【可以通过修改/etc/hosts文件使用域名进行访问】

推送完后可以通过访问http://127.0.0.1:5000/v2/_catalog进行验证

3、通过 docker pull 命令从仓库pull镜像
$ docker pull 192.168.1.66:5000/httpd:1.0
1
报错:http: server gave HTTP response to HTTPS client

原因:Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。

解决办法:

vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 后面加参数–insecure-registry 192.168.1.66:5000

【注意:192.168.1.66是我私有仓库所在主机的ip,需要改成自己的仓库ip或者域名】

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.1.66:5000
1

修改好后重启docker 服务

systemctl daemon-reload 
systemctl restart docker
1
2
vi /etc/docker/daemon.json 没有的话自己新建一个
加入以下内容:(注意ip改成自己的)

{ "insecure-registries":["192.168.1.66:5000"] }
1
修改好后重启docker 服务

systemctl daemon-reload 
systemctl restart docker
1
2
重新pull

$ docker pull 192.168.1.66:5000/httpd:1.0
1
成功

4、体验小优化
4.1 在push端添加host后通过域名进行push

 

2、pull端添加hosts后通过域名进行pull

docker.service和daemon.json也修改为对应域名

这样push和pull的时候如果仓库ip发生了变化,只需要修改hosts即可。

文章链接: https://www.mfisp.com/20846.html

文章标题:docker搭建私有仓库

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程

Web 界面查看 Nodes 信息

2023-5-26 13:21:13

建站教程

docker开启外部访问

2023-5-29 14:31:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠