Docker Gitlab Container Registry配置

news/2025/2/12 2:46:58/

文章目录

  • 前言
  • 一、Registry是什么
  • 二、步骤
    • 配置gitlab.rb文件
    • 修改docker-compose.yaml文档
    • 验证推送镜像
  • 总结


前言

找了很多资料包括官网1都没有发现比较清楚的配置registry的方法,自己摸索了半天发现其实通过简单设置就能够配置好Container Registry

之所以在题目中说明http访问是由于之前在配置安装本地gitlab时也是配置的http访问原文为《gitlab使用docker简单快速部署》,在此基础上如何简单配置好registry用来保存ci打包好的镜像便是这篇文章主要内容


一、Registry是什么

Docker Registry是一个用于存储和分发Docker镜像的服务器应用程序。它可以让开发人员轻松分享和管理他们的Docker镜像,并让其他人轻松访问和下载这些镜像。Docker Registry可以运行在本地网络或公共云服务上,并提供了多种可选择的存储后端,如Amazon S3、Google Cloud Storage和Azure Blob Storage等。同时,Docker Registry还提供了认证、授权和安全方面的功能,使得开发人员可以更加安全地管理和共享他们的镜像。

Docker提供了Docker Registry工具,可以用于构建私有镜像仓库,gitlab在使用docker配置安装时其实也能简单同时搭建好一个registry用来保存你在编译过程中打包的镜像。

简单的来说就是一个镜像保存服务器,并且gitlab配置的这个服务器还能使用本地gitlab用户名和密码登陆,CI在打包时也能很方便的将镜像推送到镜像服务器做保存。

二、步骤

配置gitlab.rb文件

你所需要修改的只有如下几行,

# 注意这里是http,地址写你的本地路由地址,前边加registry
registry_external_url 'http://registry.gitlab.example.com'
gitlab_rails['registry_enabled'] = true
# 如前
gitlab_rails['registry_host'] = "registry.gitlab.example.com"
# 这里写你想保存的路径,注意这里写的是容器内的路径
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"

较完整这一块的配置如下:

...# gitlab_rails['redis_yml_override'] = nil################################################################################
## Container Registry settings
##! Docs: https://docs.gitlab.com/ee/administration/packages/container_registry.html
################################################################################registry_external_url 'http://registry.gitlab.example.com'### Settings used by GitLab application
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "registry.gitlab.example.com"
#gitlab_rails['registry_port'] = "5050"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"# Notification secret, it's used to authenticate notification requests to GitLab application
# You only need to change this when you use external Registry service, otherwise
# it will be taken directly from notification settings of your Registry
# gitlab_rails['registry_notification_secret'] = nil###! **Do not change the following 3 settings unless you know what you are
###!   doing**
# gitlab_rails['registry_api_url'] = "http://192.168.1.90:5005"
# gitlab_rails['registry_key_path'] = "/var/opt/gitlab/gitlab-rails/certificate.key"
# gitlab_rails['registry_issuer'] = "omnibus-gitlab-issuer"### Settings used by Registry application
#registry['enable'] = true
# registry['username'] = "registry"
# registry['group'] = "registry"
# registry['uid'] = nil
# registry['gid'] = nil...

修改docker-compose.yaml文档

代码如下:

# docker-compose.yml
services:web:image: 'gitlab/gitlab-ee:15.11.2-ee.0'restart: alwayshostname: 'gitlab.example.com'container_name: gitlabenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://gitlab.example.com'# Add any other gitlab.rb configuration here, each on its own line# NOTICE! here change to 'http' instead of 'https'ports:- '80:80'- '443:443'- '22:22'- '5000:5000'# 这里增加了5000端口volumes:- '$GITLAB_HOME/config:/etc/gitlab'- '$GITLAB_HOME/logs:/var/log/gitlab'- '$GITLAB_HOME/data:/var/opt/gitlab'shm_size: '256m'
version: '3.6'

使用docker-compose restart即可重启容器完成配置。

成功运行后结果如下所示:
在这里插入图片描述

验证推送镜像

$ docker pull busybox
$ docker login registry.gitlab.***.com
Username: *
Password: 
WARNING! Your password will be stored unencrypted in /home/dev/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
$ docker tag busybox:latest registry.gitlab.***.com/common/fc_robot_resources:latest
$ docker push registry.gitlab.***.com/common/fc_robot_resources:latest 
The push refers to repository [registry.gitlab.***.com/common/fc_robot_resources]
9547b4c33213: Pushed 
latest: digest: sha256:5cd3db04b8be5773388576a83177aff4f40a03457a63855f4b9cbe30542b9a43 size: 528

即可成功推送,这时gitlab上也可以看到对应的打包镜像。

在这里插入图片描述

注意:
如果docker login报错Error response from daemon: Get "https://registry.gitlab.***.com/v2/": dial tcp 192.168.1.1:443: connect: connection refused可以参考如下文章解决《docker使用http服务及国内镜像加速》


总结

以上就是所有的内容,本文通过简单的流程和图示按步实现了Gitlab Container Registry的配置。


  1. GitLab Container Registry administration ↩︎


http://www.ppmy.cn/news/266641.html

相关文章

奇安信 渗透测试(攻防类)一面复盘

奇安信 渗透测试(攻防类)一面复盘 1.你是哪里人2.你是做安全研发的,在qax这边除了这个红队的岗位还投递其他了吗3.看你研发做的比较多,为什么投递这个岗位4.给了一个具体的场景,问你做渗透测试的思路5.后渗透有了解吗&…

CSS设计指南 笔记3

CSS设计指南 笔记3 3 定位元素 盒模型:浏览器为页面中的每个HTML元素生成的矩形盒子,都要按照可见版式模型(visual formatting model)在页面上排布 可见页面版式的三个属性控制:position、display、float position…

Python的内置函数和保留字(关键字)

目录 内置函数 关键字(保留字) 内置函数 Python 解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要导入某个模块。 将使用频繁的代码段封装起来,并给它起一个名字,以后使用的时候只要知道名字就可…

老式马桶水封不足的唯一解决方案

老式马桶与下水管没有彻底隔离,就带来一个问题,上家或下家冲水时,由于下水管中,压力的变化, 会造成水封的位置变化,从而导致异味渗出,笔者查找了很多家装网,都说,无法解…

【Docker】6.Docker Volume

文章目录 Docker Volume为什么需要存储卷管理卷 Volume绑定卷 Bind临时卷 Tmpfs MySQL灾难恢复Docker Volume使用情况Docker Volume 带来的问题 Docker Volume 存储卷就是宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。容器直接在宿…

马桶座便挑选A---I

座便器选购要点: A.水件 好的水件材质有光泽,比较湿润,水件里面添加特殊成分防节水垢,按键力度大小都一样很均匀,按键保证使用50万次,几年内不会发生马桶维修现象。 B.水箱 浪鲸所有水箱内壁都施过轴。摸…

计算机主机拆机事项,笔记本电脑拆机注意事项 新手怎么拆解笔记本电脑?

笔记本电脑不同于台式电脑,在日常拆机维护方面,很多新手朋友对面对台式机拆机尚可以应付,但对于更为精密的笔记本电脑往往不知道如何下手。而在笔记本升级内存、固态硬盘又或者清理灰尘的时候都需要拆机,新手要怎么拆解笔记本呢&a…

个人笔记本拆解全过程记录

把笔记本后面的几个螺丝拧下来 打开笔记本后边,把电池扣下来,电池槽位旁边有个螺丝固定前面的 拧下来 打开硬盘内存条 无线网卡的盖子,然后把固定机械键盘的 3个螺丝拧下来(1个螺丝是用来固定键盘盖板的) 把键盘…