自建docker镜像仓库

继国内dockerhub被墙,大厂镜像被禁以后,国内使用docker越来越不舒服,为了解决该困扰教大家自建镜像仓库。

用 香港服务器 + Docker Registry + 本地 HTTP 代理 ,实现国内机器无缝拉取 Docker Hub 镜像。全程只需要 3 步。


整体思路

  1. 香港服务器:起一个 Docker Registry 代理(registry proxy),它会自动从 Docker Hub 拉取并缓存
  2. 香港服务器:开一个 HTTP 代理(Caddy/Nginx) 给国内机器访问
  3. 国内机器:配置 daemon.json 指向香港代理

一、香港服务器操作(Docker + Registry Proxy)

1. 安装 Docker(已装可跳过)

复制代码
curl -fsSL https://get.docker.com | bash
systemctl enable --now docker

2. 启动 Docker Registry 代理(关键)

创建目录:

复制代码
mkdir -p /data/registry

启动代理 registry(直接复制运行):

复制代码
docker run -d \
  --restart=always \
  --name registry-proxy \
  -p 5000:5000 \
  -v /data/registry:/var/lib/registry \
  -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
  -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry \
  registry:2

这就是一个 Docker Hub 中转缓存仓库。

  • 国内拉取 → 香港代理 → 第一次去 Docker Hub 拉,后面直接走缓存。

二、香港服务器:开放端口

复制代码
# 防火墙开放 5000
ufw allow 5000/tcp

安全建议:生产环境建议加账号密码或限制来源 IP。


三、国内机器配置(关键)

1. 编辑 /etc/docker/daemon.json

复制代码
vim /etc/docker/daemon.json

写入(把 你的香港IP 替换掉):

复制代码
{
  "registry-mirrors": [
    "http://你的香港IP:5000"
  ]
}

2. 重启 Docker

复制代码
systemctl daemon-reload
systemctl restart docker

四、测试是否成功

国内机器直接执行:

复制代码
docker pull nginx

会自动从 香港服务器中转拉取,速度非常快。


五、进阶(可选,更安全)

如果你希望:

  • 加 账号密码认证
  • 加 HTTPS
  • 加 域名
  • 限制国内 IP 白名单
相关推荐
wz97548 小时前
Docker 从 systemd 托管容器、overlay2 存储驱动到 Compose 多容器实战
spring cloud·docker·eureka
新*9 小时前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
小白的码BUG之路10 小时前
Jenkins -- gitee+docker+harbor+k8s 部署项目
docker·gitee·jenkins
AlfredZhao10 小时前
Docker Compose 平滑切换环境变量文件,容器配置不残留
docker
duansamve1 天前
Python3+Flask+PostgreSQL18+Vue3项目生产环境用docker如何部署?
python·docker·flask
mengge.cloud1 天前
prometheus+k8s+弹性伸缩,综合项目
云原生·容器·kubernetes·prometheus
xbzb1 天前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
那明眸似水1 天前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
腾飞开源1 天前
03_Kubernetes 核心概念拆解:从 Spec/Status 收敛到工作负载控制器的设计逻辑
云原生·容器·kubernetes
知已难寻2 天前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器