docker搭建私有仓库

一、docker搭建私有仓库

  Docker 官方提供了一个搭建私有仓库的镜像 registry ,运行该镜像的容器并且对外暴露5000端口就ok了。

  如果是在内网环境中,可以之间使用,如果是外网访问内网,可以借助花生壳等做个内网穿透。

1、下载运行register容器

$ docker run -d -v /Users/miuye/Public/registry:/var/lib/registry -p 5000:5000 --name myRegistry registry

/Users/miuye/Public/registry是我个人的挂载的本地目录,push到该仓库的镜像会保存在该路径下。

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

image-20220220123057905.png

2、push镜像到仓库

2.1 通过docker images可以查看目前有的镜像

image-20220220123232679.png

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

2.2 通过docker tag将该镜像标志为要推送到私有仓库

$ docker tag httpd:1.0 localhost:5000/httpd:1.0
image-20220220123620657.png

 

2.3 通过 docker push 命令将 httpd 镜像 push到私有仓库中

$ docker push localhost:5000/httpd:1.0

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

image-20220220123938848.png

 

3、通过 docker pull 命令从仓库pull镜像

$ docker pull 192.168.1.66:5000/httpd:1.0

报错:http: server gave HTTP response to HTTPS client

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

image-20220220124211435.png

解决办法

  1. 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
image-20220220124649416.png

修改好后重启docker 服务

systemctl daemon-reload 
systemctl restart docker
  1. vi /etc/docker/daemon.json 没有的话自己新建一个

加入以下内容:(注意ip改成自己的)

{ "insecure-registries":["192.168.1.66:5000"] }

修改好后重启docker 服务

systemctl daemon-reload 
systemctl restart docker

 

  1. 重新pull

$ docker pull 192.168.1.66:5000/httpd:1.0
成功
image-20220220125538523.png

 

4、体验小优化

4.1 在push端添加host后通过域名进行push

image-20220220125850152.png

image-20220220130708022.png

image-20220220130727648.png

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

image-20220220131034028.png

docker.servicedaemon.json也修改为对应域名

image-20220220131351374.png

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

 
参考链接:

https://www.cnblogs.com/huanchupkblog/p/10843800.html
https://www.cnblogs.com/programmer-tlh/p/10996443.html

 
如有不对,烦请指出,感谢!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容