Linux国外VPS搭建Docker Registry:私有镜像仓库部署指南

一、环境准备:选对国外VPS是基础
搭建Docker Registry对VPS的配置和网络有一定要求。建议选择2核4G及以上配置的Linux国外VPS——2核CPU可保障容器调度流畅,4G内存能避免镜像拉取/推送时的内存不足问题。网络方面,优先考虑支持CN2 GIA线路的VPS,这类线路在国内访问时延迟更低,镜像传输效率能提升30%-50%。
接下来需要在VPS上安装Docker和Docker Compose。Docker可通过官方脚本快速安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Docker Compose的安装命令如下(以1.29.2版本为例):
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
安装完成后,通过`docker --version`和`docker-compose --version`验证是否成功。
二、创建证书:保障镜像传输安全
为避免镜像在传输过程中被截获,需为Registry配置TLS加密。这里使用OpenSSL生成自签名证书(生产环境建议申请CA证书),操作步骤如下:
mkdir -p certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt
执行时需注意:填写"Common Name"(通用名称)时,必须输入VPS的公网IP或已绑定的域名,否则后续客户端连接会报错。其他信息(如国家、城市)可根据实际情况填写。
三、配置与启动:编写Docker Compose文件
在VPS根目录创建`docker-compose.yml`文件,内容如下:
version: '3'
services:
registry:
image: registry:2
ports:
- "5000:5000"
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
REGISTRY_HTTP_TLS_KEY: /certs/domain.key
volumes:
- ./certs:/certs
- ./registry:/var/lib/registry
这个配置将容器5000端口映射到VPS的5000端口,并挂载了证书目录(用于TLS加密)和镜像存储目录(防止容器重启后数据丢失)。
完成文件编写后,在同目录执行`docker-compose up -d`启动服务。通过`docker ps`命令查看容器状态,若看到`registry:2`容器运行且端口映射正确,说明启动成功。
四、测试验证:推送镜像确认功能
最后一步是测试镜像推送。以Ubuntu镜像为例,执行以下命令:
docker tag ubuntu:latest your-vps-ip:5000/ubuntu:latest
docker push your-vps-ip:5000/ubuntu:latest
若出现"Pushed"提示,说明镜像已成功推送至私有仓库。若推送失败,常见原因有两点:一是5000端口未开放(需通过`ufw allow 5000`放行);二是客户端未信任自签名证书(Linux系统需将`domain.crt`复制到`/etc/docker/certs.d/your-vps-ip:5000/ca.crt`并重启Docker)。
通过这套流程,技术团队可快速在Linux国外VPS上搭建专属的Docker Registry。相较于公共镜像仓库,私有仓库不仅能避免第三方服务限制,还能通过访问控制、镜像审计等功能进一步强化数据安全,尤其适合对代码敏感的金融、医疗等行业团队使用。