你是不是也和我一样,搞开发、做项目的时候,总离不开 Docker?镜像打包、一键部署,简直是现代程序员的“神兵利器”。但问题来了——每次推镜像都往 Docker Hub 上扔,不仅慢,还怕泄露公司代码。更别提那点可怜的免费额度,稍微一用就超了。

这时候你就该考虑:自己搭一个私有 Docker Registry!听起来高大上?其实没那么难。尤其是当你手里有一台阿里云的轻量应用服务器(也就是咱们常说的“轻量服务器”),整个过程就像煮泡面一样简单,三步搞定,连新手都能上手。
今天我就带你从零开始,一步步在阿里云轻量服务器上搭建属于你自己的私有 Docker Registry。不整那些虚头巴脑的概念,只讲你能听懂的大白话,保证你看完就能动手操作。
为啥要自建私有 Registry?
先说清楚,我们为啥非要自己搭个镜像仓库?直接用 Docker Hub 不香吗?
香是香,但有几个坑:
- 速度慢:国外服务器,国内拉镜像动不动几十秒起步,有时候还断线。
- 隐私风险:公司内部项目打成镜像,万一不小心设成公开了,代码就“裸奔”了。
- 额度限制:Docker Hub 免费用户每月只有 200 次拉取限额,项目一多根本不够用。
而自己搭一个私有 Registry,这些问题全都能解决。你可以把它理解为“本地版 Docker Hub”,所有镜像存在你自己的服务器上,想怎么玩就怎么玩,安全、快速、可控。
准备工作:你需要啥?
在开始之前,先确认你手头有没有这几样东西:
- 一台阿里云轻量应用服务器:最低配就行,比如 2核2G 的 CentOS 或 Ubuntu 系统都可以。
- 一个域名(可选但推荐):用来配置 HTTPS,更安全也更专业。没有也没关系,内网用 IP 也能跑。
- 基础的 Linux 操作能力:会敲命令行,知道怎么连 SSH 就够了。
如果你还没有轻量服务器,现在去阿里云买是最合适的。而且提醒你一句,阿里云优惠券记得领一下,新用户首购能省不少钱,老用户续费也有折扣,别傻乎乎原价买。
第一步:登录服务器,装 Docker
拿到服务器后,第一件事就是通过 SSH 登录进去。你可以用终端(Mac/Linux)或者 Xshell、PuTTY(Windows)这类工具。
假设你的服务器公网 IP 是 123.123.123.123,用户名是 root,那命令就是:
ssh root@123.123.123.123
输入密码后就进去了。接下来,装 Docker。这一步特别关键,因为后面所有操作都依赖它。
在 Ubuntu 或 CentOS 上,推荐用官方脚本一键安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
装完之后启动 Docker 并设置开机自启:
systemctl start docker
systemctl enable docker
最后验证一下是否成功:
docker --version
如果返回类似 Docker version 24.0.7, build ...,那就说明 Docker 已经稳稳装上了。
第二步:运行私有 Registry 容器
Docker 装好了,接下来就是重头戏——启动私有 Registry 服务。
Registry 其实就是一个官方提供的 Docker 镜像,名字叫 registry:2。我们只需要用 docker run 把它跑起来就行了。
最简单的命令如下:
docker run -d
--name registry
-p 5000:5000
registry:2
解释一下这几个参数:
-d:后台运行--name registry:给容器起个名字,方便管理-p 5000:5000:把服务器的 5000 端口映射到容器的 5000 端口registry:2:要用的镜像名称
执行完这条命令,Registry 服务就已经在跑了。你可以用 docker ps 看一眼:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123def456 registry:2 "/entrypoint.sh /etc…" 2 minutes ago Up 2 minutes 0.0.0.0:5000->5000/tcp registry
看到这个,恭喜你,私有仓库已经上线了!
第三步:测试推送和拉取镜像
现在来实战一把,看看能不能真正用起来。
先在本地(你的电脑)找一个已有的镜像,比如 nginx:alpine,然后给它打个标签,指向你的私有仓库:
docker tag nginx:alpine your-server-ip:5000/my-nginx
注意把 your-server-ip 换成你阿里云轻量服务器的真实公网 IP,比如 123.123.123.123:5000/my-nginx。
接着推上去:
docker push 123.123.123.123:5000/my-nginx
如果一切顺利,你会看到一堆 Pushing layer 的日志,最后显示 Pushed,说明镜像已经存到你自己的服务器上了!
再来试试从另一台机器拉下来(或者先删掉本地镜像再拉):
docker pull 123.123.123.123:5000/my-nginx
如果能成功拉下来,那你这套私有 Registry 就完全跑通了!是不是比想象中简单多了?
第四步:加点安全性(可选但强烈建议)
上面的操作虽然能用,但有个大问题——没有加密,也没有认证。也就是说,只要你服务器 IP 和端口暴露出去,谁都能往里推镜像,甚至还能删数据,太危险了。
强烈建议你加上 HTTPS 和用户名密码认证。
1. 配置 HTTPS(用 Nginx 反向代理)
最简单的办法是用 Nginx 做反向代理,前面加一层 SSL 加密。
在服务器上安装 Nginx:
yum install nginx -y # CentOS
# 或
apt install nginx -y # Ubuntu
然后申请一个免费证书,可以用阿里云的 SSL 证书服务,或者用 Let’s Encrypt。假设你有一个域名 registry.mycompany.com,绑定到服务器 IP。
配置 Nginx:
server {
listen 443 ssl;
server_name registry.mycompany.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启 Nginx:
systemctl restart nginx
这样,你就可以通过 https://registry.mycompany.com 访问你的私有仓库了。
2. 添加用户名密码认证
还是用 Nginx,我们可以加个 basic auth。
先生成密码文件:
htpasswd -c /etc/nginx/.htpasswd admin
输入密码后,会在 /etc/nginx/.htpasswd 生成一个用户。
然后在 Nginx 配置中加入:
location / {
auth_basic "Registry Auth";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
}
重启 Nginx,再推镜像时就会要求输入账号密码了。
推送命令也要改一下:
docker login https://registry.mycompany.com
docker tag nginx:alpine registry.mycompany.com/my-nginx
docker push registry.mycompany.com/my-nginx
这样一来,你的私有 Registry 就既安全又体面了。
第五步:持久化存储,别让数据丢了
还有一个坑得提前避掉:默认情况下,Registry 容器一旦删除,里面的所有镜像也就没了。
所以一定要做数据持久化,把镜像文件存到服务器磁盘上。
修改启动命令,加一个挂载目录:
docker run -d
--name registry
-p 5000:5000
-v /opt/registry/data:/var/lib/registry
registry:2
这样所有镜像都会存在 /opt/registry/data 目录下,就算容器删了重建,数据也不会丢。
你现在已经是个“运维小能手”了
看到这里,你已经完成了从零搭建私有 Docker Registry 的全过程。是不是发现,其实没那么复杂?
回顾一下关键步骤:
- 买台阿里云轻量服务器(别忘了领 阿里云优惠券)
- 装 Docker
- 跑 registry 容器
- 测试推拉镜像
- 加 HTTPS 和密码认证(安全必备)
- 做数据持久化
搞定之后,你不仅可以用来存自己的项目镜像,还能给团队用,搭建一个小型 CI/CD 流水线的核心组件之一。以后别人问你“你们公司的镜像放哪儿”,你可以潇洒地说:“我们有自己的私有仓库。”
技术这东西,不怕不会,就怕不敢动手。今天你敢搭一个 Registry,明天就能搞 K8s 集群。每一步,都是通往高手的路上的一块砖。
别犹豫了,趁着阿里云还有活动,赶紧去搭一台轻量服务器,动手试一遍。遇到问题也不怕,评论区留言,我看到都会回。
记住,最好的学习方式,永远是——干就完了。
内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。
本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/149825.html