众所周知,飞牛为了解决docker网络问题,不是直连官方镜像,而是自己做了一套镜像缓存,部分项目拉不到、更新也有延迟。
今天给大家介绍一个非常实用的工具——dkTurbo,它可以帮助我们加速 Docker 镜像的拉取过程。如果你经常遇到 DockerHub 镜像拉取缓慢的问题,那么 dkTurbo 绝对是你的救星!
什么是 dkTurbo?
dkTurbo 是一个 Docker 镜像加速器,它通过自动换源的方式,帮助我们使用更快的镜像源来加速 Docker 镜像的下载。无论是新手还是老手,dkTurbo 都能让你轻松上手,真正做到“喂饭到你嘴里”!
项目文档
如何使用 dkTurbo?
一键运行
# 每一项参数都是必要的,请勿随意修改除环境变量以外的参数
docker run --rm --name=dkturbo -v /etc/docker:/etc/docker -v /opt:/opt -e MODE=registry -e REGISTRY=auto --pid=host --privileged registry.cn-shenzhen.aliyuncs.com/cp0204/dkturbo:main
代理模式:
# 本地有自己的代理的话,也可以用来设代理,如
docker run --rm
--name=dkturbo
-v /etc/docker:/etc/docker
-v /opt:/opt
-e MODE=proxy
-e HTTP_PROXY=172.17.0.1:10808
-e HTTPS_PROXY=172.17.0.1:10808
--network=bridge
--pid=host
--privileged
registry.cn-shenzhen.aliyuncs.com/cp0204/dkturbo:main
使用 docker-compose
如果你更喜欢使用 docker-compose
,可以创建一个 docker-compose.yml
文件,内容如下:
name: dkturbo
services:
dkturbo:
image: registry.cn-shenzhen.aliyuncs.com/cp0204/dkturbo:main
container_name: dkturbo
volumes:
- /etc/docker:/etc/docker
- /opt:/opt
environment:
- MODE=registry
- REGISTRY=auto
network_mode: bridge
restart: unless-stopped
pid: host
privileged: true
启动 = 自动换源
当你启动 dkTurbo 后,它会自动测速并修改镜像源。你可以在容器日志中查看工作进度。
容器停止 = 换源成功
换源完成后,dkTurbo 会自动停止自身,并重启系统的 Docker 服务。此时,你可以删除容器。
运行效果

进阶使用
dkTurbo 提供了两种加速模式,你可以根据网络环境和需求选择合适的模式:
1. registry 模式 (默认)
此模式下,dkTurbo 会从指定的 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-**rors
和 proxies
键,以达到配置的目的。
有关 daemon.json
配置工作原理的更多信息,请参阅 Docker 官方文档:
技术细节:
- 通过
docker pull
运行的时间测速,选择最快的镜像源
- 通过
docker info
获取当前系统 Docker 配置,判断是否需要修改
- 通过
docker run --pid=host --privileged
取得在主机中运行命令的权限
- 通过
jq
安全地修改 JSON 文件(v2)
希望这个教程能帮助大家更好地使用 dkTurbo,加速 Docker 镜像的拉取过程。如果你有任何问题或建议,欢迎在评论区留言讨论!
Happy Dockerizing! 🐳