搭建Docker私有仓库

拉取Registry镜像
sudo docker pull registry:2.1.1

启动容器
sudo docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:2.1.1

Registry默认将上传的镜像保存在容器的/var/lib/registry,将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了

开放端口
查询端口是否已打开:
netstat -an | grep 端口 或 netstat -tunlp |grep 端口

1、 /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
2、 /etc/init.d/iptables restart
3、 /etc/rc.d/init.d/iptables save

验证
打开浏览器输入http://127.0.0.1:5000/v2

在浏览器中输入http://127.0.0.1:5000/v2/_catalog查看上传的镜像

异常
可能会出现无法push镜像到私有仓库的问题。这是因为我们启动的registry服务不是安全可信赖的,这是我们需要修改docker的配置文件/etc/default/docker,添加下面的内容,
DOCKER_OPTS="–insecure-registry xxx.xxx.xxx.xxx:5000"
重启docker后台进程,
service docker restart

如果报以下错误:
The push refers to a repository [192.168.1.100:5000/hello-world]
Get https://192.168.1.161:5000/v1/_ping: http: server gave HTTP response to HTTPS client

原因是docker私有仓库服务器,默认是基于https传输的,需要在客户端做相关设置,不使用https传输
vi /etc/docker/daemon.json
“insecure-registries”:[“192.168.1.100:5000”]
即:
{
“registry-mirrors”: [“https://njrds9qc.mirror.aliyuncs.com”],
“insecure-registries”:[“192.168.1.100:5000”]
}
重新启动docker:
systemctl daemon-reload
systemctl restart docker
再次执行推送命令:
docker push 192.168.1.100:5000/hello-world:latest 验证

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值