【技术底稿 11】内网私有 Docker 镜像仓库 Registry2 全流程部署(多机共享,告别离线拷贝)

前言

昨天刚写完【技术底稿 10】Ollama 部署,直接冲上了运维榜第二。今天趁热打铁,把内网环境最刚需、一次部署终身受益的基础设施 ------私有 Docker 镜像仓库完整落地。

对于多服务器、内网隔离、经常部署 AI 服务与微服务的场景来说,私有仓库真的是效率神器:一次下载、内网全服共享、告别离线拷镜像、版本统一管理。本篇全程实战、可直接复制执行,无废话、纯干货。


一、使用场景与痛点

在内网环境搭建 DevOps 平台和 AI 项目时,你一定会遇到这些问题:

  • 多台服务器,镜像要反复下载、拷贝,极其浪费时间
  • 离线传输镜像包动辄几个 G,拷贝慢、容易损坏
  • 镜像版本混乱,这台一个版本、那台一个版本
  • AI 镜像(Milvus、Ollama 等)体积巨大,重复下载扛不住

所以私有 Docker 仓库是内网环境的基建标配:一次拉取 → 推入仓库 → 所有服务器内网秒拉。


二、环境信息

  • 系统:Ubuntu 22.04
  • 服务器 IP:192.168.18.100
  • 仓库版本:registry:2
  • 部署方式:Docker Compose
  • 用途:业务镜像、监控镜像、AI 向量库镜像统一托管

三、部署步骤(直接复制跑)

1. 加载镜像

如果你是离线环境,先加载镜像:

plaintext

复制代码
docker load -i registry.tar

2. 编写 docker-compose.yml

yaml

复制代码
version: '3.5'
services:
  registry:
    container_name: registry
    image: registry:2
    ports:
      - "5000:5000"
    volumes:
      - ./registry-data:/var/lib/registry
    restart: always

3. 一键启动

plaintext

复制代码
docker-compose up -d

4. 客户端配置(所有机器都要配)

编辑 /etc/docker/daemon.json,加入:

json

复制代码
{
  "insecure-registries": ["192.168.18.100:5000"]
}

重启 Docker:

plaintext

复制代码
systemctl daemon-reload
systemctl restart docker

四、推送镜像到私有仓库

以 Milvus、MySQL、Nginx、Ollama 为例:

1)打标签

plaintext

复制代码
docker tag registry:2 192.168.18.100:5000/registry:2
docker tag mysql:8.0 192.168.18.100:5000/mysql:8.0
docker tag milvusdb/milvus:v2.3.0 192.168.18.100:5000/milvusdb/milvus:v2.3.0

2)推送

plaintext

复制代码
docker push 192.168.18.100:5000/registry:2
docker push 192.168.18.100:5000/mysql:8.0
docker push 192.168.18.100:5000/milvusdb/milvus:v2.3.0

3)其他机器拉取

plaintext

复制代码
docker pull 192.168.18.100:5000/mysql:8.0

五、常用运维命令

查看仓库里有哪些镜像:

plaintext

复制代码
curl http://192.168.18.100:5000/v2/_catalog

查看某个镜像的版本:

plaintext

复制代码
curl http://192.168.18.100:5000/v2/mysql/tags/list

查看日志:

plaintext

复制代码
docker logs -f registry

六、常见坑

1)客户端拉取报错:http: server gave HTTP response to HTTPS client→ 就是没配 insecure-registries

2)推送失败→ 标签没打对,必须是 仓库IP:端口/名称:版本

3)数据丢失→ 一定要挂目录持久化,我这里用了 ./registry-data


七、价值总结

  • 一次部署,整个局域网终身受益
  • 彻底告别离线拷镜像、U 盘传文件
  • AI 大镜像、微服务多环境统一管理
  • 为后续 K3s、Jenkins、监控体系打基础
  • 内网 DevOps 平台必备基建

关注我

持续更新《人生底稿》成长史 &《技术底稿》&《产品底稿》实战干货一起踏实成长,不焦虑、不内卷。

📚 系列导航:

【人生底稿 01】|农村少年(1995--2005)

【技术底稿】01:37岁老码农,用4台机器搭了套个人DevOps平台

【产品底稿01】37 岁 Java 老码农,用 Java 搭了个 AI 写作助手,把自己 14 年技术文章全喂给了 AI!

相关推荐
Yana.nice7 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
2601_9605679610 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
shiyi.十一10 小时前
第2章:应用层 — 知识要点与架构
网络·计算机网络·架构
吳所畏惧11 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
张忠琳11 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
HiDev_11 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling12 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
爱写代码的森12 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
XUHUOJUN13 小时前
Azure Local VM 部署第 1 篇:Hyperconverged 路径完整实战
架构·azure local
Elastic 中国社区官方博客13 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana