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应纳入独立备份和恢复演练。