目前很多的Linux运维或爱好者,从dockerhub上拉取镜像到本地环境,通常无法正常拉取,主要是因为特殊原因导致。
很多都是在/etc/docker/daemon.json中添加参数registry-mirrors,加速镜像地址,那可能存在无法接通down镜像的情况。
那么,接下来我们如何从本地搭建一个dockerhub的镜像,帮助我们能够及时拉取镜像到本地环境中呢?
可参考docker镜像地址
Docker 镜像加速站集合 https://dockerproxy.xiaoxuan6.me/ 可能需要科学
搭建部署不是很难
材料
• 科学加速工具/订阅&节点
• flclash
• clash-meta / mihomo
• 订阅链接/节点
• docker/docker-compose
• 基础系统环境
• linux
• win
• github开源项目
• Docker-Proxy
搭建说明
• 1、需要科学节点/代理,且能访问registry-1.docker.io
• 2、需要懂docker配置和使用,以及docker-compos基础
• 3、Linux基础
科学代理
这里可参考https://clash.abcd789.eu.org/archives/docker-composebu-shu-mihomo-zashboard
核心配置
docker-compose.yaml
version: '3.8'
services:
## docker hub
dockerhub:
container_name: reg-docker-hub
image: dqzboy/registry:latest
restart: always
environment:
- OTEL_TRACES_EXPORTER=none
- http=http://192.168.100.80:8081
- https=http://192.168.100.80:8081
- HTTP_PROXY=http://192.168.100.80:8081
- HTTPS_PROXY=http://192.168.100.80:8081
volumes:
- ./registry/data:/var/lib/registry
- ./registry-hub.yml:/etc/distribution/config.yml
#- ./htpasswd:/auth/htpasswd
ports:
- 51000:5000
networks:
- registry-net
这里http://192.168.100.80:8081 为科学代理IP+端口 ,需要用到科学节点
registry-hub.yml
version: 0.1
log:
accesslog:
disabled: true
level: info
formatter: text
fields:
service: registry
root@debian11:/100data/docker_proxy# cat registry-hub.yml
version: 0.1
log:
accesslog:
disabled: true
level: info
formatter: text
fields:
service: registry
environment: staging
storage:
cache:
# 改为 blan 禁用 blob 描述符缓存,可解决docker pull error:unexpected EOF
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
#inmemory: # 此存储驱动程序不会在运行期间保留任何数据,适合磁盘空间小的机器使用(但是会使用内存开销,只适合测试)
maintenance:
uploadpurging:
enabled: false
tag:
concurrencylimit: 8
delete:
enabled: true
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
Access-Control-Allow-Origin: ['*']
Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
Access-Control-Allow-Headers: ['Authorization', 'Accept', 'Cache-Control']
Access-Control-Max-Age: [1728000]
Access-Control-Allow-Credentials: [true]
Access-Control-Expose-Headers: ['Docker-Content-Digest']
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
proxy:
remoteurl: https://registry-1.docker.io
username:
password:
ttl: 168h启动 docker-compose up -d
接下来修改docker服务配置
Docker 配置镜像加速
修改文件 /etc/docker/daemon.json (如果不存在则创建)
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
{
"registry-mirrors": [ "http://192.168.100.80:51000", "http://192.168.100.80:xxx" ],
"insecure-registries": [ "192.168.100.80:51000", "192.168.100.80:xxx" ]
}
sudo systemctl daemon-reload
sudo systemctl restart docker这里http://192.168.100.80:51000 是你本地的docker加速地址,一般是http + IP +端口 ,IP是要本地服务器网卡IP,不是127.0.0.1
接下来就去测试吧
docker pull nginx
评论区