Docker Gitlab Container Registry配置

news2024/11/26 23:21:53

文章目录

  • 前言
  • 一、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: always
    hostname: 'gitlab.example.com'
    container_name: gitlab
    environment:
      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-store

Login 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.coloradmin.cn/o/621073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Docker】3.Docker Registry

文章目录 Docker RegistryDocker Registry CommandImage Command NginxNginx System installNginx Config Container CommandCreate My DegistryBusyBox腾讯云镜像仓库搭建 Docker Registry 镜像仓库负责存储、管理、分发镜像,并且提供了登录认证的能力&#xff0c…

LeetCode_二叉树_DFS_中等_129.求根节点到叶节点数字之和

目录 1.题目2.思路3.代码实现(Java) 1.题目 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -> …

【计算机网络】IP 地址处理函数

目录 1.struct sockaddr_in的结构 2.一般我们写的结构 3.常见的“点分十进制” 到 ” uint32_t 的转化接口 3.1. inet_aton 和 inet_ntoa (ipv4) 3.2. inet_pton 和 inet_ntop (ipv4 和 ipv6) 3.3. inet_addr 和 inet_network 3…

人工智能-深度学习-科研神器推荐

根据知乎问题 有没有什么可以节省大量时间的 Deep Learning 效率神器? 的回答,筛选整理出一些深度学习科研神器。包括参数优化、数据可视化、模型部署蒸馏剪枝等。收录到 人工智能-深度学习-科研神器推荐https://​www.webhub123.com/#/home/detail?p4O…

vue监听缓存数据(localStorage)

方法:可以重写localStorage的setItem方法,当调用setItem方法设置新值的时候,会new Event(‘setItemEvent’) 用window.dispatchEvent()这个方法来派发一个事件,让window去监听 以下demo实现的是 一个页面获取诗句 然后将获取的数据…

【P51 】JMeter 聚合报告(Aggregate Report)

文章目录 一、聚合报告(Aggregate Report)参数说明二、准备工作三、测试计划设计 一、聚合报告(Aggregate Report)参数说明 可以查看事务或者取样器在某个时间范围内执行的汇总结果 使用场景:用于评估测试结果 使用…

2023-06-07 stonedb-包含内连接外连接派生表in子查询和聚合-查询结果错误-分析问题的思路

摘要: 最近在处理stonedb的一个包含内连接包含内连接外连接派生表in子查询和聚合的查询出错的问题, 逻辑非常复杂, 包含的操作符非常多. 本文首先从顶层设计出发, 指出如何分析如此复杂的问题。 查询SQL: SELECTB.company_id,上划日 ud_type,2 sort_no,合计 fiscal_date,DAT…

输入java -version 命令行没反应的简单解决办法【亲测有效】

💧 记录一下今天遇到的 b u g \color{#FF1493}{记录一下今天遇到的bug} 记录一下今天遇到的bug💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 数据结构与算法…

qemu+buildroot+linux arm64操作系统虚拟化-宿主系统wsl2

文章目录 1.qemu2.buildroot配置编译 3.linux kernel下载交叉编译工具链 linux kernel 5.16配置内核config_kernel.shbuild_kernel.sh 4.启动虚拟机start_qemu.sh参数解释运行 环境: wls2、qemu8.2、buildroot、linuxkernel 1.qemu https://buildroot.org/download…

Python知识点:lambda 表达式

大家好,欢迎来到 Crossin的编程教室 ! Python 是一门简洁的语言,lambda 表达式则充分体现了 Python 这一特点。 lambda 表达可以被看做是一种匿名函数。它可以让你快速定义一个极度简单的单行函数。譬如这样一个实现三个数相加的函数&#xf…

学会使用perf性能分析工具(含移植到开发板)

文章目录 一、在ubuntu中使用apt包下载Perf二、使用源码安装Perf,并移植到arm-linux环境下三、使用perf四、Perf的功能介绍 系统:Ubuntu18.04系统 内核版本:5.4.0-150-generic(通过uname -r查看) 一、在ubuntu中使用ap…

Linux驱动系列-PWM驱动

转自:嵌入式系统研发 1.概述 本文主要讲述了Linux的PWM驱动框架、实现方法、驱动添加方法和调试方法。 示例Linux内核版本:6.2.8。 2.原理 PWM是Pulse-Width Modulation的简称,中文译作脉冲宽度调制。作为一种调制技术,PWM的…

SpringBoot实现异步调用的几种方式

一、使用 CompletableFuture 实现异步任务 CompletableFuture 是 Java 8 新增的一个异步编程工具,它可以方便地实现异步任务。使用 CompletableFuture 需要满足以下条件: 异步任务的返回值类型必须是 CompletableFuture 类型; 在异步任务中…

基于vasp计算材料红外与Raman光谱信息

使用方法一:获取材料raman活性信息 代码链接:VASP/Sibulk-VASP at master raman-sc/VASP GitHub 前置计算材料的振动频率和介电常数等,参考INCAR如下: SYSTEM Si_bulk ISTART 0 # From-scratch; job : 0-new 1-cont 2-same…

4-2 贪心算法的基本要素

博主简介:一个爱打游戏的计算机专业学生博主主页: 夏驰和徐策所属专栏:算法设计与分析 1.什么是贪心选择性质 贪心选择性质是一种在算法设计中经常使用的策略。它基于这样的思想:在每一步选择中,都选择当前看起来最优…

多篇论文入选ICASSP 2023,火山语音有效解决多类实践问题

近日由IEEE主办、被誉为世界范围内最大规模、也是最全面的信号处理及其应用方面的顶级学术会议ICASSP2023于希腊召开,该会议具有权威、广泛的学界以及工业界影响力,备受AI领域多方关注。会上火山语音多篇论文被接收并发表,内容涵盖众多前沿领…

superset db upgrade报错记录

superset db upgrade报错记录 报错1报错2报错3报错4报错5报错6成功了 报错1 (superset) [hyjhadoop102 ~]$ superset db upgradefrom markupsafe import soft_unicode ImportError: cannot import name soft_unicode from markupsafe (/opt/module/miniconda3/envs/superset/l…

git基本操作(笔记)

安装 查看是否安装成功 git --version配置用户名和邮箱 参数global表示全局配置,对所有仓库生效,system表示系统配置,对所有用户生效,省略是(local)表示本地配置,只对本地仓库有效。 git config…

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

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

form-inserter 让你的表单插入更轻松

挖SRC的时候经常需要向 input 框或者textarea 框中插入一些payload,但是遇到某个网页需要插入的输入框很多或者payload 很复杂的时候,就需要多次复制粘贴,过程比较繁琐。 例如如下两种情况: 情况1:输入框很多 情况2:…