最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux 服务器搭建如何配置私有镜像仓库服务
时间:2026-08-15 08:08:48 编辑:袖梨 来源:一聚教程网
核心是部署可持久化、可访问、可管理的Registry服务:基础运行需挂载/data/registry并映射5000端口;客户端须配置insecure-registries白名单;生产环境必须启用HTTPS证书及htpasswd认证;增强体验可加装joxit/docker-registry-ui Web界面。
在 Linux 服务器上配置私有镜像仓库,核心是部署一个可持久化、可访问、可管理的 Registry 服务。不建议直接裸跑 HTTP 仓库用于生产,但测试环境可快速启动;正式使用需补充 HTTPS 和认证机制。下面分四类场景说明关键配置点。
基础运行:一键启动 Registry 容器
确保 Docker 已安装并运行后,执行以下命令启动最简版仓库:
- 创建持久化目录:mkdir -p /data/registry
- 运行容器:docker run -d --restart=always --name registry -p 5000:5000 -v /data/registry:/var/lib/registry registry:2
- 此时仓库监听 http://localhost:5000,仅限本机或内网直连访问
客户端信任:解决 “HTTP client to HTTPS server” 报错
Docker 默认拒绝向 HTTP 仓库推送镜像。若暂不启用 HTTPS,需在所有要推送/拉取的客户端上配置非安全仓库白名单:
- 编辑或新建 /etc/docker/daemon.json
- 添加字段:"insecure-registries": ["192.168.1.100:5000"](将 IP 替换为你的服务器真实内网地址)
- 重启 Docker:systemctl restart docker
- 验证:执行 docker info | grep -A 1 "Insecure Registries" 应显示已生效
生产就绪:挂载证书与用户认证
对外提供服务或跨网络使用时,必须启用 HTTPS + 基础认证:
- 生成自签名证书(或使用 Let’s Encrypt 正式证书):openssl req -newkey rsa:4096 -nodes -sha256 -x509 -days 365 -keyout domain.key -out domain.crt
- 创建认证文件:mkdir -p /opt/registry/{auth,certs} && docker run --rm httpd:alpine htpasswd -Bbn admin pass123 > /opt/registry/auth/htpasswd
- 启动带安全参数的容器:docker run -d --restart=always --name registry -p 443:5000 -v /opt/registry/certs:/certs -v /opt/registry/auth:/auth -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" registry:2
增强体验:添加 Web UI 界面
原生 Registry 不带图形界面,可通过轻量 UI 镜像辅助查看和管理:
- 使用 joxit/docker-registry-ui:static 配合 docker-compose 部署
- 关键配置项:REGISTRY_URL=http://registry:5000(容器间通信用服务名)、REGISTRY_TITLE=内部镜像中心
- UI 默认映射到宿主机 8092 端口,浏览器打开即可浏览仓库中的镜像列表与标签