GitLab Container Registry

经过将GitLab Container Registry集成到GitLab中,每一个项目均可以拥有本身的空间来存储其Docker镜像。html

1. 启用Container Registrymysql

若是在你的项目的侧边栏下找不到 Packages > Container Registry 这个目录,那么请联系管理员。git

若是你使用的是GitLab.com,那么默认状况下此功能是启用的,所以能够当即开始使用Registry。当前,做为仓库大小限制的一部分,GitLab.com上的Registry有一个较小的大小限制(10GB)。sql

为了启用Container Registry :docker

  1.  进入Settings > General页面
  2. 展开Visibility, project features, permissions区域,并在项目上启用Container Registry特性
  3. 点击Save changes 

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的项目。

持续集成和部署是一种趋势:

  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 

相关文章
相关标签/搜索