Oamc

私有镜像仓库 · 修改记录

这是 container/private-registry.md 的每次改动内容,按时间从新到旧。其他文章一起提交的部分不会出现在这里。

#1 2026-10-18 +65 −0 docs: 新增容器/安全分类,补 Windows 组策略与 Linux 内核救援,共 11 篇 69302a9
 new file mode 100644
 @@ -0,0 +1,65 @@
+---
+tags: [Docker, 镜像仓库, registry]
+order: 40
+---
+
+# 私有镜像仓库
+
+## 场景
+
+内网拉不到 Docker Hub,或者要把自己构建的镜像集中管理。
+
+## 前置条件
+
+- 一台有磁盘的服务器
+- 域名或 IP(用 HTTPS 需要证书)
+- 规划好存储目录和清理策略
+
+## 配置
+
+```bash
+# 起 registry
+mkdir -p /data/registry
+docker run -d --name registry \
+  -p 5000:5000 \
+  -v /data/registry:/var/lib/registry \
+  -e REGISTRY_STORAGE_DELETE_ENABLED=true \
+  --restart always \
+  registry:2
+
+# 客户端信任(内网 HTTP)
+cat >/etc/docker/daemon.json <<'EOF'
+{ "insecure-registries": ["registry.corp.local:5000"] }
+EOF
+systemctl restart docker
+
+# 推送
+docker tag nginx:1.25 registry.corp.local:5000/nginx:1.25
+docker push registry.corp.local:5000/nginx:1.25
+docker pull registry.corp.local:5000/nginx:1.25
+```
+
+## 验证
+
+```bash
+curl http://registry.corp.local:5000/v2/_catalog
+curl http://registry.corp.local:5000/v2/nginx/tags/list
+du -sh /data/registry
+```
+
+## 回滚
+
+```bash
+docker rm -f registry
+```
+
+镜像数据还在 `/data/registry`,删了容器不影响。
+
+## 坑
+
+- **没开 `REGISTRY_STORAGE_DELETE_ENABLED`**,删镜像只删标签,空间不回收。
+- 只删标签不清垃圾,磁盘会一直涨,要跑 `registry garbage-collect`。
+- HTTP 仓库必须加到 `insecure-registries`,否则 push 报 `server gave HTTP response to HTTPS client`。
+- 没配认证,内网任何人都能推镜像。
+- 存储放系统盘,几个镜像就把根分区写满。
+- 证书过期后所有节点拉镜像失败,记得续期。