天天看點

第一章 docker 鏡像,容器,倉庫基本指令(二)

倉庫(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