docker hub雖然提供得有公有倉庫,但是有一些限制,一是網絡連接慢;二是上傳docker hub的鏡像所有人都可以訪問,雖然可以私有化倉庫但是不是免費的;三是沒那麼安全。所以我們可以通過registry在本地建一個鏡像倉庫,docker已經將registry開源了,下面開始創建本地鏡像倉庫。
1、準備環境——需要兩臺裝有docker的虛擬機
服務端 docker1:docker私有倉庫服務器,運行registry容器;
測試端 docker2:普通的docker服務器,在這臺服務器上下載鏡像並上傳倉庫
2、配置服務端docker1
docker pull registry
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
運行registry容器
curl http://127.0.0.1:5000/v2/_catalog
可以看到倉庫中還沒有鏡像,現在我們開始進行測試端的配置
3、配置測試端docker2
下載鏡像 docker pull busybox
修改鏡像源
vim /etc/docker/daemon.json
將
修改爲自己的registry安裝的容器,也就是服務端docker1的地址
{"registry-mirrors": ["http://registry.docker-cn.com"],
"insecure-registries": [ "192.168.32.131:5000"]}
重啓docker服務
systemctl restart docker
爲鏡像打標籤
docker tag busybox:latest 172.18.18.90:5000/busybox:v1
上傳鏡像
docker push 172.18.18.90:5000/busybox:v1
我們查看服務端docker1
現在就上傳成功了,我們可以再試一下拉取,刪除docker2上的鏡像,從docker1 pull下來
刪除 docker rmi -f $(docker images -aq)
拉取 docker pull 192.168.32.131:5000/busybox:v1