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

作者 : admin 本文共2112个字,预计阅读时间需要6分钟 发布时间: 2024-06-10 共2人阅读

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

(前提是需要一台海外服务器!!!)
我的博客: http://www.itwk.cc/post/1497.html

安装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 http://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

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

sudo curl -L "http://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 http://$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": ["http://your_registry_url"]  # your_registry_url为你的加速地址
}

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

systemctl daemon-reload
systemctl restart docker

拉取镜像测试

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

速度还是很ok的~

本站无任何商业行为
个人在线分享 » 国内docker镜像站全军覆没 如何自己部署一个Docker镜像加速服务器?
E-->