docker私有倉庫的搭建和使用。
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私有倉庫的搭建和使用。