手把手教你用阿里云轻量服务器搭建私有Docker Registry

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

阿里云轻量服务器搭建私有Docker Registry

这时候你就该考虑:自己搭一个私有 Docker Registry!听起来高大上?其实没那么难。尤其是当你手里有一台阿里云的轻量应用服务器(也就是咱们常说的“轻量服务器”),整个过程就像煮泡面一样简单,三步搞定,连新手都能上手。

今天我就带你从零开始,一步步在阿里云轻量服务器上搭建属于你自己的私有 Docker Registry。不整那些虚头巴脑的概念,只讲你能听懂的大白话,保证你看完就能动手操作。

为啥要自建私有 Registry?

先说清楚,我们为啥非要自己搭个镜像仓库?直接用 Docker Hub 不香吗?

香是香,但有几个坑:

  • 速度慢:国外服务器,国内拉镜像动不动几十秒起步,有时候还断线。
  • 隐私风险:公司内部项目打成镜像,万一不小心设成公开了,代码就“裸奔”了。
  • 额度限制:Docker Hub 免费用户每月只有 200 次拉取限额,项目一多根本不够用。

而自己搭一个私有 Registry,这些问题全都能解决。你可以把它理解为“本地版 Docker Hub”,所有镜像存在你自己的服务器上,想怎么玩就怎么玩,安全、快速、可控。

准备工作:你需要啥?

在开始之前,先确认你手头有没有这几样东西:

  1. 一台阿里云轻量应用服务器:最低配就行,比如 2核2G 的 CentOS 或 Ubuntu 系统都可以。
  2. 一个域名(可选但推荐):用来配置 HTTPS,更安全也更专业。没有也没关系,内网用 IP 也能跑。
  3. 基础的 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 的全过程。是不是发现,其实没那么复杂?

回顾一下关键步骤:

  1. 买台阿里云轻量服务器(别忘了领 阿里云优惠券
  2. 装 Docker
  3. 跑 registry 容器
  4. 测试推拉镜像
  5. 加 HTTPS 和密码认证(安全必备)
  6. 做数据持久化

搞定之后,你不仅可以用来存自己的项目镜像,还能给团队用,搭建一个小型 CI/CD 流水线的核心组件之一。以后别人问你“你们公司的镜像放哪儿”,你可以潇洒地说:“我们有自己的私有仓库。”

技术这东西,不怕不会,就怕不敢动手。今天你敢搭一个 Registry,明天就能搞 K8s 集群。每一步,都是通往高手的路上的一块砖。

别犹豫了,趁着阿里云还有活动,赶紧去搭一台轻量服务器,动手试一遍。遇到问题也不怕,评论区留言,我看到都会回。

记住,最好的学习方式,永远是——干就完了。

内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。

本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/149825.html

(0)
上一篇 1天前
下一篇 1天前
联系我们
关注微信
关注微信
分享本页
返回顶部