天天看點

GitLab Container Registry

通過将GitLab Container Registry內建到GitLab中,每個項目都可以擁有自己的空間來存儲其Docker鏡像。

1. 啟用Container Registry

如果在你的項目的側邊欄下找不到 Packages > Container Registry 這個目錄,那麼請聯系管理者。

如果你使用的是GitLab.com,那麼預設情況下此功能是啟用的,是以可以立即開始使用Registry。目前,作為倉庫大小限制的一部分,GitLab.com上的Registry有一個較小的大小限制(10GB)。

為了啟用Container Registry :

  1.  進入Settings > General頁面
  2. 展開Visibility, project features, permissions區域,并在項目上啟用Container Registry特性
  3. 點選Save changes 

2. 建構并推送鏡像

假設Registry的URL是registry.example.com,首先你應該登入

docker login registry.example.com       

建構和釋出鏡像應該是一個簡單的過程。隻需確定你使用的Registry URL的命名空間和項目名稱是托管再GitLab上:

docker build -t registry.example.com/group/project/image .
docker push registry.example.com/group/project/image       

項目命名格式:

<registry URL>/<namespace>/<project>/<image>      

GitLab最多支援三級的鏡像倉庫名稱

下面這些鏡像tag命名都是有效的:

registry.example.com/group/project:some-tag
registry.example.com/group/project/image:latest
registry.example.com/group/project/my/image:rc1
      

3. 使用GitLab Container Registry中的鏡像

docker run [options] registry.example.com/group/project/image [arguments]
      

4. 使用GitLab CI建構和推送鏡像

GitLab CI/CD 允許你使用Docker Engine來建構和測試基于docker的項目。

持續內建和部署是一種趨勢:

  1. 建立一個應用鏡像
  2. 為這個鏡像運作測試
  3. 推送鏡像到遠端注冊中心
  4. 将推送的鏡像部署到伺服器上 
docker build -t my-image dockerfiles/
docker run my-image /script/to/run/tests
docker tag my-image my-registry:5000/my-image
docker push my-registry:5000/my-image      

Register Docker Runner 

sudo gitlab-runner register \
     --url"https://gitlab.example.com/" \
     --registration-token "PROJECT_REGISTRATION_TOKEN" \
     --description"docker-ruby:2.6" \
     --executor "docker" \
     --docker-image ruby:2.6 \
     --docker-services postgres:latest \
     --docker-services mysql:latest
      

5. Docs

https://docs.gitlab.com/ee/user/packages/container_registry/index.html

https://docs.gitlab.com/ee/administration/packages/container_registry.html

https://docs.gitlab.com/ee/ci/docker/using_docker_build.html