【Docker】安装registry本地镜像库,开启Https功能

news2025/7/10 16:50:04

下载镜像

docker pull registry:2

      需要启动https功能,就要生成服务端的自签名的证书和私钥,以及在docker客户端安装这个经过签名的证书。 第一步:生成公私钥信息,第二步,制作证书签名申请文件, 第三步:用私钥签名申请文件(里面保护公钥申请人的公钥信息) 第四步: 把签名后的证书配置到docker端,同时在registry端配置私钥

制作公私钥

    首先熟悉下相关概念:

  • x509:证书标准
  • pem和der:两种(包括公私钥、证书签名请求、证书等内容的)的格式,前者是文本形式,linux常用,后者是二进制形式,windows常用,仅仅是格式,不表明内容,如果作为后缀就像html起的效果一样。有时候用pem做公钥的后缀
  • crt和cer:常见的两种证书后缀名,前者大多数情况为pem格式,后者大多数情况为der格式
  • csr:证书签名请求文件(后缀一般都是.csr),包含了公钥、用户名等信息
  • key:常见的私钥的后缀名

1、先创建一个公私钥对

   openssl genpkey -algorithm RSA -out registry_private.key  -pkeyopt rsa_keygen_bits:2048

  ** -algorithm RSA是说明 生产公私钥的算法,rsa_keygen_bits:2048 指定rsa算法密钥的长度,长度越长越安全,但是长度长解密时需要更长时间。 也可以用 -aes256 选项表示加密保护私钥。

2、查看使用openssl pkey -in registry_private.key -text -noout 查看生成后的私钥信息

      里面可以看到公钥和私钥部分信息

3、openssl rsa -in registry_private.key -pubout -out registry_public.key 生产一个公钥信息文件

     

 生成证书签名请求 (CSR)

   创建一个配置文件,内容如下:

[root@master01 pki]# cat crs.conf 
[req]
distinguished_name  = req_distinguished_name
req_extensions = v3_req
prompt = no

[req_distinguished_name]
C = CN
ST = CKG
L = CKG
O = ITTest
OU = IT
CN = 192.168.2.222

[v3_req]
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]

DNS.1=master00.com
DNS.2=bqs.master00.com
IP.1 = 192.168.2.222  #这个ip就是你的镜像服务的ip,如果有域名的域名也添加上面 DNS.1= xxx.com

执行命令生成申请文件

openssl req -new -key registry_private.key -out registry.csr -config crs.conf

生成自签名证书

openssl x509 -req -in registry.csr -signkey registry_private.key -out registry.crt -days 3650 -extfile crs.conf -extensions v3_req

-days 3650 指定证书的有效天数

 查看证书

openssl x509 -in registry.crt -text -noout

启动私有仓库容器

docker run -d \
  --restart=always \
  --name registry \
  --memory 512m \
  -p 443:443  \
  -v /root/regimages:/var/lib/registry \
  --memory-swap -1 \
  -v /root/docker/pki:/etc/certs.d \   # 把刚才生成证书的目录挂载到 容器中
  -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
  -e REGISTRY_HTTP_SECRET=secret \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/certs.d/registry.crt \  #指定了https的证书
  -e REGISTRY_HTTP_TLS_KEY=/etc/certs.d/registry_private.key \    #指定了https的私钥
  registry:2

把证书安装到Docker客户端

1、创建目录  /etc/docker/certs.d/192.168.2.222/   [在其他主机上也是这个ip作为文件夹]  

       如果https的默认端口不是443,比如是:444 ,那么文件夹的名称端口也要加上:  192.168.2.222:444

    ***  /etc/docker/certs.d/是固定的,后面IP目录就是根据自己实际IP 或者域名创建文件夹名称就行

2、把刚才生成的证书registry.crt 复制到上面的目录,而且名称要改成  ca.crt 。

3、重新启动Docker,就可以了

测试

***还有一种方式就是把用于签名的证书,因为这里是自签名,所以也就是这个自签名正式直接加入到操作系统层面的 信任正式库里面也可以。

#追加

   cat cat.crt >>  /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt  

#系统层面更新  

update-ca-trust

然后k8s中下载库中的镜像

在node上docker login 登录镜像库 生成  $HOME/.docker/config.json

kubectl create secret generic harborregcred -n jtkjdev --from-file=.dockerconfigjson=$HOME/.docker/config.json  --type=kubernetes.io/dockerconfigjson

    spec:

      imagePullSecrets:

      - name: harborregcred

      containers:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2272903.html

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

相关文章

单片机-LED点阵实验

要将第一个点点亮,则 1 脚接高电平 a 脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第 1 脚要接高电平,而(a、b、c、d、e、f、g、h )这些引脚接低电平,那么第一行就会点亮&…

PDFMathTranslate: Star13.8k,一款基于AI的PDF文档全文双语翻译PDF文档全文双语翻译,保留格式神器,你应该需要它

嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 PDFMathTranslate是一个开源项目,旨在为用户提供便捷的PDF科学论文翻译解决方案。它不仅能够翻译文本,还能保留公式、图表、目…

RockyLinux9配置静态ip地址教程

以往我们配置linux系统的ip地址是在 /etc/sysconfig/network-scripts/ifcfg-网卡名 配置文件中编辑的,详情请见 Rocky8.10配置网络和主机名教程_rocky8配置网络-CSDN博客 但是在RockyLinux9系统中弃用了以前的这种方式,改为了新的配置方式。下面我们介绍…

民宿酒店预订系统小程序+uniapp全开源+搭建教程

一.介绍 一.系统介绍 基于ThinkPHPuniappuView开发的多门店民宿酒店预订管理系统,快速部署属于自己民宿酒店的预订小程序,包含预订、退房、WIFI连接、吐槽、周边信息等功能。提供全部无加密源代码,支持私有化部署。 二.搭建环境 系统环境…

【C++数据结构——图】图的邻接矩阵和邻接表的存储(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 1. 带权有向图 2. 图的邻接矩阵 3. 图的邻接表 测试说明 通关代码 测试结果 任务描述 本关任务:编写一个程序实现图的邻接矩阵和邻接表的存储。 相关知识 为了完成本关任务,你需要掌握: 带权有向图…

【数据挖掘】深度高斯过程

深度高斯过程(Deep Gaussian Process, DGP)是一种结合高斯过程(Gaussian Process, GP)和深度学习的模型,旨在将高斯过程的非参数灵活性与深度模型的分层特征学习能力相结合。它可以看作是高斯过程的深度扩展&#xff0…

【NLP 18、新词发现和TF·IDF】

目录 一、新词发现 1.新词发现的衡量标准 ① 内部稳固 ② 外部多变 2.示例 ① 初始化类 NewWordDetect ② 加载语料信息,并进行统计 ③ 统计指定长度的词频及其左右邻居字符词频 ④ 计算熵 ⑤ 计算左右熵 ​编辑 ⑥ 统计词长总数 ⑦ 计算互信息 ⑧ 计算每个词…

GitLab创建用户,设置访问SSH Key

继上一篇 Linux Red Hat 7.9 Server安装GitLab-CSDN博客 安装好gitlab,启用管理员root账号后,开始创建用户账户 1、创建用户账户 进入管理后台页面 点击 New User 输入用户名、邮箱等必填信息和登录密码 密码最小的8位,不然会不通过 拉到…

计算机网络--路由表的更新

一、方法 【计算机网络习题-RIP路由表更新-哔哩哔哩】 二、举个例子 例1 例2

C语言 数组编程练习

1.将数组A的内容和数组B中的内容进行交换。(数组一样大) 2.创建一个整形数组,完成对数组的操作 实现函数Init()初始化数组全为0 实现print()打印数组的每个元素 实现reverse()函数完成数组元素的逆置 //2.创建一个整形数组,完…

H7-TOOL固件2.27发布,新增加40多款芯片脱机烧录,含多款车轨芯片,发布LUA API手册,CAN助手增加负载率,错误状态信息检测

H7-TOOL详细介绍(含操作手册):H7-TOOL开发工具,1拖4/16脱机烧录,高速DAPLINK,RTOS Trace,CAN/串口助手, 示波器, RTT等,支持WiFi,以太网,高速USB和手持 - H7-…

基于Matlab的变压器仿真模型建模方法(13):单相升压自耦变压器的等效电路和仿真模型

1.单相升压自耦变压器的基本方程和等效电路 单相升压自耦变压器的接线原理图如图1所示。在建立自耦变压器的基本方程时,仍然把它看成是从双绕组变压器演变而来。在图1中,设节点a到节点b部分的绕组的匝数为,对应于双绕组变压器的原边绕组;节点c到节点a部分的绕组的绕组匝数为…

Linux——查看并修改文件夹可读可写等权限

一、查看当前文件夹下的所有文件夹的权限 ls -l二、命令 drwxrwxr-x:只有所有者有可读可写可执行权限,其他用户只有可读可执行权限。 sudo chmod -R 775 文件夹名字drwxrwxrwx:所有用户都有可读可写可执行权限。 sudo chmod -R 777 文件夹…

【C++面向对象——类的多态性与虚函数】计算图像面积(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 1. 纯虚函数 一、特点 二、使用场景 三、作用 四、注意事项 五、相关概念对比 2. 抽象类的使用 一、定义与概念 二、使用场景 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务:设计一个矩形类、一个圆形…

杰发科技——使用ATCLinkTool解除读保护

0. 原因 在jlink供电电压不稳定的情况下,概率性出现读保护问题,量产时候可以通过离线烧录工具避免。代码中开了读保护,但是没有通过can/uart/lin/gpio控制等方式进行关闭,导致无法关闭读保护。杰发所有芯片都可以用本方式解除读保…

【pytorch-lightning】架构一览

pytorch-lightning是基于pytorch的一个套壳项目,适配pytorch的版本同步更新速度很快。 它将训练的几个主要流程模块化,减少重复工作,同时让支持分布式训练,不同平台的训练迁移变得更加简单。 官网链接

时空遥感影像智能解译软件(基础版)

一、时空遥感影像智能解译软件(基础版)简概 “时空遥感影像智能解译软件(基础版)”,该软件基于Python高级编程语言与PyQt5界面设计框架开发,依赖于sys、os系统库以及OpenCV、GDAL、Numpy、Math、Random、Ma…

Chapter4.3:Implementing a feed forward network with GELU activations

4 Implementing a GPT model from Scratch To Generate Text 4.3 Implementing a feed forward network with GELU activations 本节即将实现子模块,用于transformer block(变换器块)的一部分。为此,我们需要从激活函数开始。 深…

常见加密算法附JAVA代码案例

1、对称加密算法(AES、DES、3DES) 对称加密算法是指加密和解密采用相同的密钥,是可逆的(即可解密)。 AES加密算法是密码学中的高级加密标准,采用的是对称分组密码体制,密钥长度的最少支持为128。AES加密算法是美国联邦政府采用的区块加密标准,这个标准用来替代原先的…

SwiftUI 撸码常见错误 2 例漫谈

概述 在 SwiftUI 日常撸码过程中,头发尚且还算茂盛的小码农们经常会犯这样那样的错误。虽然犯这些错的原因都很简单,但有时想要快速准确的定位它们却并不容易。 况且这些错误还可能在模拟器和 Xcode 预览(Preview)表现的行为不甚…