国内docker镜像站全军覆没 如何自己部署一个Docker镜像加速服务器?

近日,在使用SJTUG提供的镜像加速拉取镜像的时候死活拉不下来,不管是 docker hub 还是国内的某些镜像站,同样都无法使用,虽然现在还有部分可用的镜像站,但也说不准某一天因为某些原因同样停止提供了,这时候就要考虑其他的解决方案了,这篇文章教大家如何自己搭建一个 Docker 加速服务器。

(前提是需要一台海外服务器!!!)

国内docker镜像站全军覆没 如何自己部署一个Docker镜像加速服务器?

安装Docker Docker compose

下面这里是安装 Docker 与 Docker compose 的方法,大佬请忽略~

# Ubuntu / Debian 系
sudo apt-get update
sudo apt-get upgrade

# CentOS、Rocky RHEL系列操作系统
yum update
yum upgrade

# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 安装 Docker compose
# GayHub:https://github.com/docker/compose/releases/latest
# 参考GayHUB地址查找最新版本号,将下方的版本号修改为最新(不改也没啥事,可以忽略。。。)

sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 我这里的版本号是基于2024年6月9日最新的 2.27.1

# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 测试
docker-compose -v
# 安装成功会显示 docker-compose 版本

搭建镜像加速服务器

编写一个 docker-compose.yml文件,内容如下:

version: "3"
services:
  docker-registry:
      image: registry:2
      container_name: registry-server
      restart: always
      ports:
          - "5000:5000"
      volumes:
          - /data/docker-registry:/data   # 数据存放目录
      environment:
          - REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io
          - REGISTRY_PROXY_USERNAME=username
          - REGISTRY_PROXY_PASSWORD=password
          - REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/data
          - http_proxy=http://10.0.0.1:1080  # proxy
          - https_proxy=http://10.0.0.1:1080 # proxy

注意:如果实在是没有海外服务器,还有一个办法,通过局域网 HTTP/HTTPS 代理来加速Docker镜像的拉取,最后两条海外服务器无需配置

国内docker镜像站全军覆没 如何自己部署一个Docker镜像加速服务器?

到现在Docker私有加速服务就算搭建好了~

个人建议,使用NGINX或者其他WEB中间件反向代理镜像服务器并启用SSL

附上Nginx配置文件示例:

    server {  
   listen 80;  
   server_name your_domain_name;  
   location / {  
       return 301 https://$host$request_uri;  
  }  
}  
   server {  
       listen 443 ssl;
       server_name your_domain_name;  
       ssl_certificate /etc/pki/tls/certs/ssl.pem;  
       ssl_certificate_key /etc/pki/tls/private/ssl.key;
       location / {  
           proxy_pass http://localhost:5000;  
           proxy_set_header Host $host;  
           proxy_set_header X-Real-IP $remote_addr;  
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
           proxy_set_header X-Forwarded-Proto $scheme;  
      }  
       # HSTS  
       add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";  
  }  

Docker配置

编辑/etc/docker/daemon.json 没有则新建一个,然后内容如下

{
       "registry-mirrors": ["https://your_registry_url"]  # your_registry_url为你的加速地址
}

重新加载systemd守护进程并重启Docker

systemctl daemon-reload
systemctl restart docker

拉取镜像测试

openaiassets_8c13e0d9c1fa214aedd7c9065bf36918_2579861717936501267.png

速度还是很ok的~

原创文章,作者:geeklinux.cn,如若转载,请注明出处:https://www.geeklinux.cn/cloud-native/docker/49.html

(0)
geeklinux.cn的头像geeklinux.cn
上一篇 2024 年 6 月 2 日 下午10:41
下一篇 2024 年 6 月 16 日 下午3:19

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注