前提: 有一台海外的VPS,目的是安装dockerhub镜像.适用debian系统
1: 安装 docker-ce (国内服务器)
bash
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
接着
bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
最后
bash
sudo apt-get update
sudo apt-get -y install docker-ce
权限
bash
sudo chmod +x /usr/local/bin/docker-compose
查看版本,验证是否安装成功
bash
docker --version && docker-compose --version
2: 配置 dockerhub 镜像(海外服务器)
注意:这里是在另外一台海外的VPS上安装dockerhub镜像
创建文件夹
bash
mkdir -p /root/data/docker_data/dockerhub
cd /root/data/docker_data/dockerhub
创建docker-compose.yml
bash
vim docker-compose.yml
英文输入法下,按 i
bash
version: "3"
services:
dockerhub:
image: "registry:2.8.1"
container_name: "dockerhub"
restart: "always"
volumes:
- "/etc/localtime:/etc/localtime"
- "./data:/var/lib/registry"
- "./config.yml:/etc/docker/registry/config.yml"
ports:
- "5000:5000"
修改好之后,按一下 esc,然后 :wq 保存退出。
创建config.yml
bash
vim config.yml
填入:
shell
version: 0.1
storage:
filesystem:
rootdirectory: /var/lib/registry
delete:
enabled: true
maintenance:
uploadpurging:
enabled: true
age: 168h
dryrun: false
interval: 1m
http:
addr: 0.0.0.0:5000
proxy:
remoteurl: https://registry-1.docker.io
最后运行:
bash
docker compose up -d
设置反向代理
我使用cloudflare 反代5000端口,你也可以使用nginx或者其他办法
登录cloudflare,解析域名, SSL/TLS设置为 灵活
点击左侧Origin Rules
点击放大看图
配置dockerhub 镜像(国内服务器)
注意:这里是在国内服务器配置镜像
创建文件夹
bash
sudo mkdir -p /etc/docker
提示: your_dockerhub_mirror.com 更改为你前面配置好的域名
bash
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://your_dockerhub_mirror.com"]
}
EOF
重启docker服务,使配置生效
bash
sudo systemctl restart docker
测试
bash
docker pull hello-world
原文链接: https://blog.taoshuge.eu.org/p/275/
出现以下信息就说明成功了
root@devlab:/etc/docker# docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:266b191e926f65542fa8daaec01a192c4d292bff79426f47300a046e1bc576fd
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest