docker搭建私有仓库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker搭建私有仓库相关的知识,希望对你有一定的参考价值。

参考技术A

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

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

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

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

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

 

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

 

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

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

解决办法

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 后面加参数--insecure-registry 192.168.1.66:5000

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

修改好后重启docker 服务

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

修改好后重启docker 服务

 

 

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

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

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

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

 
参考链接:

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

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

Docker 搭建本地私有仓库

搭建本地私有仓库

搭建本地私有仓库

#首先下载registry 镜像
docker pull registry

#在daemon.json文件中添加私有镜像仓库地址
vim /etc/ docker/daemon.json

"insecure-registries": ["192.168.80.10:5000"],
#添加,注意用逗号结尾
"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"]

systemctl restart docker.service

#运行 registry 容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
===================================================
-itd: 在容器中打开一个伪终端进行交互操作,并在后台运行
-v: 把宿主机的/data/registry目录绑定到容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的
持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了
--restart=always: 这是重启的策略,在容器退出时总是重启容器
--name registry: 创建容器命名为registry
registry:latest:这个是刚才pull下来的镜像
====================================================
Docker容器的重启策略如下:
no:默认策略,在容器退出时不重启容器
on-failure: 在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3 :在容器非正常退出时重启容器,最多重启3次
always: 在容器退出时总是重启容器
unless-stopped: 在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

#为镜像打标签
docker tag centos:7 192.168.80.10:5000/centos:v1

#上传到私有仓库
docker push 192.168.80.10:5000/centos:v1

#列出私有仓库的所有镜像
curl http://192.168.80.10:5000/v2/_catalog

#出私有仓库的centos镜像有哪些tag
curl http://192.168.80.10:5000/v2/centos/tags/list
#先删除原有的centos的镜像,再测试私有仓库下载
docker rmi -f 8652b9f0cb4c
docker pull 192.168.80.10:5000/centos:v1



以上是关于docker搭建私有仓库的主要内容,如果未能解决你的问题,请参考以下文章

搭建docker私有镜像仓库

Docker私有仓库的搭建与使用

docker私有镜像仓库搭建和镜像删除

搭建docker私有仓库

docker私有仓库的搭建

docker搭建私有仓库