近日,在使用SJTUG提供的镜像加速拉取镜像的时候死活拉不下来,不管是 docker hub 还是国内的某些镜像站,同样都无法使用,虽然现在还有部分可用的镜像站,但也说不准某一天因为某些原因同样停止提供了,这时候就要考虑其他的解决方案了,这篇文章教大家如何自己搭建一个 Docker 加速服务器。
(前提是需要一台海外服务器!!!)
我的博客: https://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 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:2container_name: registry-serverrestart: alwaysports:- "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私有加速服务就算搭建好了~
个人建议,使用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
拉取镜像测试
速度还是很ok的~