經過將GitLab Container Registry集成到GitLab中,每一個項目均可以擁有本身的空間來存儲其Docker鏡像。html
1. 啓用Container Registrymysql
若是在你的項目的側邊欄下找不到 Packages > Container Registry 這個目錄,那麼請聯繫管理員。git
若是你使用的是GitLab.com,那麼默認狀況下此功能是啓用的,所以能夠當即開始使用Registry。當前,做爲倉庫大小限制的一部分,GitLab.com上的Registry有一個較小的大小限制(10GB)。sql
爲了啓用Container Registry :docker
2. 構建並推送鏡像ruby
假設Registry的URL是registry.example.com,首先你應該登陸服務器
docker login registry.example.com
構建和發佈鏡像應該是一個簡單的過程。只需確保你使用的Registry URL的命名空間和項目名稱是託管再GitLab上:gitlab
docker build -t registry.example.com/group/project/image .
docker push registry.example.com/group/project/image
項目命名格式:post
<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的項目。
持續集成和部署是一種趨勢:
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