如何解决 docker registry x509 证书不信任问题?

2024-02-02 08:28

本文主要是介绍如何解决 docker registry x509 证书不信任问题?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近想尝试一下极狐GitLab(可以理解为 GitLab 在中国的发行版)内置的容器镜像仓库,这样就不用自己安装 Harbor 之类的了。于是找了个服务器安装了一个极狐GitLab 的私有化部署版本,安装过程可以参考过往的技术文章使用Omnibus 安装极狐GitLab。

极狐GitLab 私有化实例部署成功以后,接下来就需要启用内置的容器镜像仓库了。需要在 /etc/gitlab/gitlab.rb 文件中对于容器仓库的配置内容进行修改:

registry_nginx['enable'] = true
registry_nginx['listen_port'] = 5050registry_external_url 'http://jihu-instance.url:5050'
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "jihu-instance.url"
gitlab_rails['registry_port'] = "5005"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"

为了使用上的安全,想给容器镜像仓库启用 HTTPS,所以需要配置 SSL 证书。在这个过程中,使用自签名的证书,以下三个命令即可生成对应的 csr、cert 和 key,将生成在证书都放在 /etc/gitlab/ssl 目录下面,注意 ssl 目录的权限应该为 755.

$ openssl genrsa -out ca.key 2048$ openssl req -new -x509 -days 365 -key ca.key -subj "/C=CN/ST=LN/L=DL/O=JH/CN=jh-instance.url" -out ca.crt$ openssl req -newkey rsa:2048 -nodes -keyout jh-instance.url.key -subj "/C=CN/ST=LN/L=DL/O=JH/CN=jhma.jihulab.net" -out jh-instance.url.csr$ openssl x509 -req -extfile <(printf "subjectAltName=DNS:jh-instance.url,DNS:www.jh-instance.url") -days 365 -in jh-instance.url.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out jh-instance.url.crt

接着在 /etc/gitlab/gitlab.rb 配置文件中写入证书配置信息:

registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/jh-instance.url.crt"
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/jh-instance.url.key"

配置完成以后需要执行 gitlab-ctl reconfigure 让配置生效。

接着将如下内容写入 .gitlab-ci.yml 文件进行测试:

component-job-build-image:image: name: docker:20.10.7-dindstage: buildscript:- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY- docker build -t $CI_REGISTRY_IMAGE:1.0.0 .- docker push $CI_REGISTRY_IMAGE:1.0.0

触发 CI/CD 流水线,会遇到如下错误:

tls: failed to verify certificate: x509: certificate signed by unknown authority 这句话的意思也就是说自签名的这个 x509 证书,docker 不信任。为了解决这个问题,需要在 daemon.json 文件中写入如下内容:

{"insecure-registries" : [ "jh-instance.url:5050" ]
}

然后重启 docker

$ systemctl daemon-reload
$ systemctl restart docker

然后重新执行流水线,就可以看到 Job 会执行成功:

至此,使用自签名证书启用极狐GitLab 内置的容器镜像仓库所带来的 x509 证书不受信任的问题就解决了。

这篇关于如何解决 docker registry x509 证书不信任问题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/670091

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11