Ubuntu Containerd 环境

生产注意

下面的 Registry 仅是最小实验示例。生产环境必须使用 HTTPS(证书最好由受信 CA 签发)、认证(例如 htpasswd/OIDC)、持久化磁盘和来源限制;不要把 5000 端口作为明文公共服务暴露。镜像仓库中的认证信息和证书不要提交到知识库。

在 /etc/systemd/system/private_registry.service 文件中写入下面的内容

[Unit]
Description=Private Registry Service
After=network-online.target containerd.service
Wants=network-online.target

[Service]
Restart=always
ExecStart=/usr/bin/nerdctl run --rm --name registry_internal -v /data/registry:/var/lib/registry -p 5000:5000 registry:2.8.2

[Install]
WantedBy=multi-user.target

通过上面的方式注册一个私有镜像服务器,之后执行下面的命令启动镜像服务器

systemctl daemon-reload
systemctl enable private_registry.service
systemctl start private_registry.service

验证服务和持久化目录:

curl --fail http://127.0.0.1:5000/v2/
nerdctl ps --filter name=registry_internal

维护

使用 HTTPS/认证时,将证书、认证配置通过只读挂载传入容器,并在客户端配置 CA。删除镜像后还需按 Registry 版本执行垃圾回收;/data/registry 应纳入独立备份和恢复演练。