docker run运行
# 每一项参数都是必要的,请勿随意修改除环境变量以外的参数
docker run --rm \--name=dkturbo \-v /etc/docker:/etc/docker \-v /opt:/opt \-e MODE=registry \-e REGISTRY=auto \--network=bridge \--pid=host \--privileged \registry.cn-shenzhen.aliyuncs.com/cp0204/dkturbo:main
docker-compose运行
name: dkturbo
services:dkturbo:image: registry.cn-shenzhen.aliyuncs.com/cp0204/dkturbo:maincontainer_name: dkturbovolumes:- /etc/docker:/etc/docker- /opt:/optenvironment:- MODE=registry- REGISTRY=autonetwork_mode: bridgerestart: unless-stoppedpid: hostprivileged: true
启动 = 自动换源
自动测速和修改镜像源,你可以在容器日志里看工作进度。
容器停止 = 换源成功
换源后自动停止自身,并重启系统 Docker 服务,此时容器可以删除。
在线源列表:https://gist.github.com/Cp0204/4330ca3b8bc68c4a4a8d57e3982a859b
进阶使用
本应用提供两种加速模式,您可以根据网络环境和需求选择合适的模式:
1. registry 模式 (默认)
此模式下,应用会从指定的 registry 镜像源下载所需资源,无需配置代理,更加简单便捷。
环境变量 | 值 | 说明 |
---|---|---|
MODE | registry (默认) | 加速模式 |
REGISTRY | auto (默认) | 加载在线镜像列表,自动选择最快的镜像 |
local | 使用内置列表,自动选择 | |
your.domain.com | 使用自定义镜像 | |
none | 取消镜像设置 |
2. proxy 模式
此模式下,docker pull 流量都会通过代理服务器,适合本地开有代理的用户。
环境变量 | 值 | 说明 |
---|---|---|
MODE | proxy | 加速模式 |
HTTP_PROXY | 默认空,例 172.17.0.1:1080 | HTTP 代理服务器地址 |
HTTPS_PROXY | 默认空,例 172.17.0.1:1080 | HTTPS 代理服务器地址 |
NO_PROXY | localhost,127.0.0.1,.example.com | 不经过代理的域名或IP地址 |
工作原理
dkTurbo 通过修改 /etc/docker/daemon.json
文件,添加或修改 registry-mirrors
和 proxies
键,以达到配置的目的。
有关 daemon.json
配置工作原理的更多信息,请参阅 Docker 官方文档:
- https://docs.docker.com/docker-hub/mirror/#configure-the-docker-daemon
- https://docs.docker.com/config/daemon/proxy/#daemon-configuration
技术细节
- 通过
docker pull
运行的时间测速,选择最快的镜像源 - 通过
docker info
获取当前系统 Docker 配置,判断是否需要修改 - 通过
docker run --pid=host --privileged
取得在主机中运行命令的权限 - 通过
jq
安全地修改 JSON 文件(v2)