• 安装部署
  • 基于docker registry部署自签名私有镜像仓库

本文以docker registry为例部署自签名私有镜像仓库:

生成自签名证书

mkdir -p certs
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
-x509 -days 36500 -out certs/domain.crt

注意:生成证书时,需填写对应域名(该域名可自由设定)

启动docker registry服务

镜像数据存储到本地/mnt/registry (目录可自定义,如果镜像较多,请确保存储空间足够)

docker run -d \
  --restart=always \
  --name registry \
  -v "$(pwd)"/certs:/certs \
  -v /mnt/registry:/var/lib/registry \
  -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  -p 443:443 \
  registry:2

配置registry

注意:需要使用该registry服务的机器,均需做如下操作。

将registry证书域名及对应ip地址配置hosts /etc/hosts

拷贝证书到指定目录,使docker信任该证书(该路径与证书域名有关,请按实际域名创建证书拷贝路径)
mkdir -p  /etc/docker/certs.d/dockerhub.kubesphere.local

cp certs/domain.crt  /etc/docker/certs.d/dockerhub.kubesphere.local/ca.crt
验证服务可用性

3 个月 后

为毛一样样的操作,我的不行?

这个错误应该是你生成证书指定的CN(hub.kumu.com)和最终镜像仓库host(dockerhub.kubesphere.local)不一致导致的。可以重新生成一下证书,把CN指定为dockerhub.kubesphere.local试试。

6 个月 后
2 年 后

[student@registry ~]$ docker push registry.example.com/my_busybox

Using default tag: latest

The push refers to repository [registry.example.com/my_busybox]

Get “https://registry.example.com/v2/”: x509: certificate relies on legacy Common Name field, use SANs instead

这个要怎么解决呢?

2 年 后

zhangteng
$(pwd) 是一个在 Unix/Linux 命令行中使用的命令组合。它由两部分组成:

  1. $():这是一个命令替换的语法,表示括号内的命令会被执行,并且其输出会被替换到当前位置。

  2. pwd:这是一个命令,表示 “print working directory”,即打印当前工作目录的路径。

因此,$(pwd) 的意思是执行 pwd 命令,并将该命令的输出(即当前工作目录的路径)替换到 $(pwd) 所在的位置。

    inksnw

    感谢大佬,请问arm系统离线制作kubesphere V3.0.0的dev_ops组件包怎么制作,有文档么