docker 注册表 服务器,使用Podman设置Docker容器注册表并加密SSL

本文将向您展示如何使用Podman创建本地Docker容器映像注册表。容器映像专用注册表使您可以安全地在本地工作,因为您可以管理所有内容,使用容器注册表,您可以在任何计算机上构建容器映像,然后使用Docker或Podman CLI将其推送到本地容器注册表。Podman是一个无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。一旦安装了Podman(参考:在CentOS 8/RHEL 8系统上安装和使用Podman的方法),就可以继续使用它来构建本地Docker注册表。

一、为Docker注册表创建域

我将为容器注册表创建一个子域:registry.computingforgeeks.com,并为其更新DNS记录。

2adaa6e253e914a4ebf80a632322e013.png

启用记录后,确认记录已填充:

$ dig A registry.computingforgeeks.com

8474291d267b8a2e00330291bf575780.png

二、创建不安全的注册表

如果您在本地托管域,或者想使用没有SSL证书的注册表,尽管不建议将其用于生产环境,也可以这样做。

确认已安装podman:

$ podman version

Version:1.4.2-stable2

RemoteAPI Version:1

Go Version:go1.12.8

OS/Arch:linux/amd64

创建容器数据目录:

sudo mkdir -p /var/lib/registry

创建您的不安全私有注册表,如下所示:

podman run --privileged -d \

--name registry \

-p 5000:5000 \

-v /var/lib/registry:/var/lib/registry \

--restart=always \

registry:2

注册表内容将存储在主机系统上的/var/lib/containers/registry中。

这是我的执行输出:

8daa352ecc5fa5fc12e81d5d3390f5fc.png

检查注册表容器是否正在运行:

$ podman ps

91510e0e0f3cac1f41edc27611ed2c77.png

下面介绍使用不安全的注册表。

默认情况下,Docker/Podman客户端将尝试通过HTTPS访问注册表,由于我们拥有HTTP注册表,因此我们需要进行一些更改以使用不安全的注册表。

对于Podman,编辑/etc/containers/registries.conf文件,然后在[registries.insecure]块下添加不安全的注册表:

$ sudo vi /etc/containers/registries.conf

registries = ['myregistry.local','registry.computingforgeeks.com:5000']

对于Docker,编辑/etc/sysconfig/docker并添加–insecure-registry选项:

OPTIONS='--insecure-registry registry.computingforgeeks.com:5000 --selinux-enabled .....'

进行更改后,您需要重新启动docker服务:

sudo systemctl restart docker

测试注册表:

$ podman pull hello-world

$ podman  images

$ podman tag docker.io/library/hello-world registry.computingforgeeks.com:5000/hello-world

$ podman images

$ podman push registry.computingforgeeks.com:5000/hello-world

c4cac7dcd8a1b270f88730ffefb7db6f.png

检查注册表服务器主机上的注册表内容:

$ ls /var/lib/registry/docker/registry/v2/repositories/

hello-world

您可以通过运行以下命令将映像拉到其他主机上:

podman pull registry.computingforgeeks.com:5000/hello-world

三、使用加密证书创建安全的注册表

创建容器数据目录:

sudo mkdir -p /var/lib/registry

安装certbot-auto工具,我们将使用该工具为注册表获取Let's Encrypt SSL证书:

wget https://dl.eff.org/certbot-auto

chmod a+x certbot-auto

sudo mv certbot-auto /usr/local/bin/certbot-auto

sudo firewall-cmd --add-service https --permanent

sudo firewall-cmd --reload

获取加密的SSL证书:

export DOMAIN="registry.computingforgeeks.com"

export EMAIL="alerts@computingforgeeks.com"

sudo /usr/local/bin/certbot-auto --standalone certonly -d $DOMAIN --preferred-challenges http --agree-tos -n -m $EMAIL --keep-until-expiring

设置您的电子邮件地址和域名用于注册。

将显示保存证书和私钥的路径:

c725fb59e83e85b43c1353c21281dfb2.png

将cron设置为autorenew:

# crontab -e

00 3 * * * /usr/local/bin/certbot-auto renew --quiet

现在创建一个安全的Container注册表:

export REG_DOMAIN="registry.computingforgeeks.com"

podman run --privileged -d \

--name registry \

-p 5000:5000 \

-v /var/lib/registry:/var/lib/registry \

-v /etc/letsencrypt/live/${REG_DOMAIN}/fullchain.pem:/certs/fullchain.pem \

-v /etc/letsencrypt/live/${REG_DOMAIN}/privkey.pem:/certs/privkey.pem \

-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/fullchain.pem \

-e REGISTRY_HTTP_TLS_KEY=/certs/privkey.pem \

registry:2

检查容器是否成功启动:

$ podman ps

dee8e5602538e83e37653efb4a8a8957.png

确认它有效:

$ podman pull nginx

$ podman images

$ podman tag docker.io/library/nginx registry.computingforgeeks.com:5000/nginx

$ podman images

$ podman push registry.computingforgeeks.com:5000/nginx

48b75d218dadcdc75b96c6277c874943.png

现在,您可以在整个基础结构中使用注册表。

相关主题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
群晖Docker注册表镜像可以通过以下几种方式进行加速: 1. 使用中转加速的网站:可以使用https://dockerproxy.com/这个网站来获取加速地址。首先在https://registry.hub.docker.com/搜索想要下载的镜像,然后在https://dockerproxy.com/中输入原镜像名称,点击【获取命令】即可得到加速的命令。\[1\] 2. 使用阿里云加速器:可以注册阿里云的账号,生成属于自己的加速链接。通过访问https://cr.console.aliyun.com/cn-beijing/instances/mirrors来注册并获取加速链接。使用阿里云加速器可以解决下载速度慢的问题。\[2\] 3. 使用SSH拉取:首先需要打开群晖的SSH功能,在【控制面板】>【终端机和SNMP】中勾选【启用SSH功能】,可以选择默认端口22或自定义端口。然后使用终端工具(如putty或finalShell)连接到群晖后台,获取管理员权限后可以使用命令搜索并拉取镜像。\[3\] 以上是三种常用的方法来加速群晖Docker注册表镜像的下载。希望对您有帮助! #### 引用[.reference_title] - *1* *3* [近期群晖容器查询注册表失败,无法下载镜像](https://blog.csdn.net/zy1281539626/article/details/130910863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [群辉Docker 下载仓库镜像提示失败 解决办法](https://blog.csdn.net/u012514495/article/details/126441861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值