坏气十足 发表于 2019-2-20 11:46:09

docker私有仓库的搭建和使用。

  1.下载仓库镜像
docker pull registry
  2.创建私有仓库容器-d表示后台启动
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
http://i2.运维网.com/images/blog/201810/25/c8d68d456eee352ec69d36e4b4f808d6.png
  3.防火墙解除5000端口限制
firewall-cmd --zone=public --add-port=5000/tcp --permanent
  4.验证私有仓库是否启动成功
http://192.3.8.12:5000/v2
http://i2.运维网.com/images/blog/201810/25/ea2f379f222872695f4852134dfdd271.png
  5.打包镜像
docker tagmy-nginx:v1 192.168.56.200:5000/centos
http://i2.运维网.com/images/blog/201810/25/42f8e9ce9961e1651b7a99798e428915.png
  6.把打包好的镜像上传到私有仓库
# docker push 192.168.56.200:5000/centos
The push refers to a repository
Get https://192.168.56.200:5000/v1/_ping: http: server gave HTTP response to HTTPS client
http://i2.运维网.com/images/blog/201810/25/86c32e5d785810db5400d2938cc277c4.png
  这个问题可能是由于客户端采用https,docker registry未采用https服务所致。一种处理方式是把客户对地址“192.168.56.200:5000”请求改为http。
  解决方法:
在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:
{ "insecure-registries":["192.168.56.200:5000"] }
  保存退出后,重启docker。
  7.再次上传又出来了问题,是因为selinux没有关。(使用setenforce 0 命令设置临时关闭,也可以vi /etc/sysconfig/selinux把里边的一行改为SELINUX=disabled改了之后保存,然后重启就可以了。)
http://i2.运维网.com/images/blog/201810/25/ce313abe7e22c9c83f0170dc6910575d.png
  8.查看私有仓库中的镜像
http://192.168.56.200:5000/v2/_catalog
http://i2.运维网.com/images/blog/201810/25/d7429fe79740f779ef4bc5fc0b9b3983.png
  9.这样就在server2上下载私有仓库的镜像了。
docker pull 192.168.56.200:5000/centos
http://i2.运维网.com/images/blog/201810/25/1a29ef60b935272a1d8d4dcd15c00bb2.png
  10.仓库镜像的备份和恢复。
直接定期备份/opt/data/registry,恢复是直接挂在到docker-registry镜像下启动即可。
  docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry



页: [1]
查看完整版本: docker私有仓库的搭建和使用。