倉庫(repository)是鏡像存放的地方,目前官方維護了一個公共倉庫 https://hub.docker.com; 具體的操作自行百度, 這裡我們讨論如何搭建私有倉庫
1.拉取倉庫
$ docker run -d -p 5000:5000 registry
2.設定倉庫私有位址
将如下指令粘到cmd中執行 192.168.31.203:5000 是你私有倉庫的位址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"insecure-registries": ["192.168.31.203:5000"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.将鏡像建立私庫标簽
$ docker tag imageregistry 192.168.31.203:5000/testregistry
4.上傳鏡像到私有倉庫
$ docker push 192.168.31.203:5000/testregistry
5.檢視鏡像是否已經上傳到私有倉庫
$ curl -X GET http://192.168.31.203:5000/v2/_catalog
6.進入容器内部檢視鏡像檔案
$docker exec -it registryId sh
$cd /var/lib/registry/docker/registry/v2/repositories/
注意: registry v1 與 V2 不同, 這裡是用的是V2版本
V1版本是在 /tmp/registry 下
V2版本是在 /var/lib/registry/ 下
7.将倉庫映射到主宿機上(這是一個新的倉庫, 上面的倉庫要停掉,不然端口沖突)
7.1 重新建立私有倉庫
$ docker run -d -p 5000:5000 --restart=always \
-v /opt/:/var/lib/registry/ \
registry
容器/var/lib/registry/下的鏡像生成時會自動添加 docker/registry/v2 的路徑,是以這裡就直接映射到主控端的/opt下, 上傳後會自動生成 /opt/docker/registry/v2路徑
檢視倉庫内容, 發現是空, 在主控端上的/opt/docker/registry/也為空
7.2重新上傳鏡像到倉庫
$ docker push 192.168.31.203:5000/testregistry
7.3删除本地的鏡像,重新拉取(毫秒級完成)
$ docker rmi 192.168.31.203:5000/testregistry
$ docker pull 192.168.31.203:5000/testregistry
恭喜你已經完成了私有庫v2版本的搭建; 開始你的docker鏡像拉取私有庫時代吧!
轉載于:https://www.cnblogs.com/yixiaoyi/p/di-yi-zhang-docker-jing-xiang-rong-qi-cang-ku-ji-b.html