环境需要
需要一个域名,需要一台外网的服务器。
解析域名
首先解析三个域名到服务器。
dockerhub.example.com
auth.dockerhub.example.com
production.dockerhub.example.com
安装caddy
# centos
yum install -y caddy
# ubuntu
apt install -y caddy
配置caddy
mkdir caddy
cd caddy
vim /etc/caddy/Caddyfile
dockerhub.example.com {
reverse_proxy https://registry-1.docker.io {
header_up Host {http.reverse_proxy.upstream.hostport}
header_down WWW-Authenticate "https://auth.docker.io" "https://auth.dockerhub.example.com"
header_down Location "https://production.cloudflare.docker.com" "https://production.dockerhub.example.com"
}
}
auth.dockerhub.example.com {
reverse_proxy https://auth.docker.io {
header_up Host {http.reverse_proxy.upstream.hostport}
}
}
production.dockerhub.example.com {
reverse_proxy https://production.cloudflare.docker.com {
header_up Host {http.reverse_proxy.upstream.hostport}
}
}
测试启动caddy
caddy run
测试从镜像下载images
在一台国内的电脑上执行以下命令
docker run docker.example.com/library/hello-world
正式启动caddy
caddy start
停止caddy
caddy stop
caddy status
caddy reload