1. 程式人生 > >docker私有倉庫的搭建和使用。

docker私有倉庫的搭建和使用。

命令 proc cto secure doc entos 分享 inux port

1.下載倉庫鏡像
docker pull registry

2.創建私有倉庫容器-d表示後臺啟動
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry

技術分享圖片

3.防火墻解除5000端口限制
firewall-cmd --zone=public --add-port=5000/tcp --permanent

4.驗證私有倉庫是否啟動成功
http://192.3.8.12:5000/v2

技術分享圖片

5.打包鏡像
docker tag my-nginx:v1 192.168.56.200:5000/centos

技術分享圖片

6.把打包好的鏡像上傳到私有倉庫
[root@server1 ~]# docker push 192.168.56.200:5000/centos


The push refers to a repository [192.168.56.200:5000/centos]
Get https://192.168.56.200:5000/v1/_ping: http: server gave HTTP response to HTTPS client

技術分享圖片

這個問題可能是由於客戶端采用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改了之後保存,然後重啟就可以了。)

技術分享圖片

8.查看私有倉庫中的鏡像
http://192.3.8.187:5000/v2/_catalog

技術分享圖片

9.這樣就在server2上下載私有倉庫的鏡像了。
docker pull 192.168.56.200:5000/centos

技術分享圖片

10.倉庫鏡像的備份和恢復。
直接定期備份/opt/data/registry,恢復是直接掛在到docker-registry鏡像下啟動即可。

docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry

docker私有倉庫的搭建和使用。