项目介绍
Mihomo-Docker-Build : 一个基于 Alpine Linux 的轻量化 Mihomo 容器化构建与部署方案。支持自动化依赖预处理、多环境变量动态配置以及 GitHub Actions 自动化流水线。
官方文档: https://github.com/Dancying/Mihomo-Docker-Build/pkgs/container/mihomo
这个项目不是 Mihomo 的官方项目,使用时需要注意鉴别。
容器运行
以下是来自作者项目说明文档中的运行命令示例:
docker run -d \
--name mihomo \
--restart always \
-p 7890:7890 \
-p 9090:9090 \
-v /opt/mihomo/config:/config \
-e SUB_URL="https://example.com/sub?token=123" \
-e UPDATE_INTERVAL=6 \
-e ALLOW_LAN="true" \
-e MIXED_PORT=7890 \
-e MIHOMO_MODE="Rule" \
-e IPV6="false" \
-e WEBUI_LISTEN_ADDR="0.0.0.0:9090" \
-e WEBUI_SECRET="secret123456" \
ghcr.io/dancying/mihomo:latest
环境变量
以下是 docker 运行命令中各环境变量的说明
| 环境变量 |
默认值 |
描述 |
SUB_URL |
无 |
你的订阅/节点链接(例如:https://example.com/sub )。 |
UPDATE_INTERVAL |
无 |
订阅自动更新间隔时间(单位:小时,例如:6)。若不配置则不会启用自动定时更新功能。 |
ALLOW_LAN |
无 |
是否允许局域网外部访问(可选值:true 或 false)。 |
MIXED_PORT |
无 |
动态修改或置顶混合代理端口(例如:7890)。 |
MIHOMO_MODE |
无 |
动态修改运行模式(可选值:Rule, Global, Direct)。 |
IPV6 |
无 |
动态修改 IPv6 总开关(可选值:true 或 false)。 |
WEBUI_LISTEN_ADDR |
0.0.0.0:9090 |
Web UI 控制面板的监听地址与端口。 |
WEBUI_SECRET |
随机生成 |
Web UI 控制面板的外部控制访问密钥(密码)。若不指定则在每次容器启动时随机生成,可通过查看容器启动日志获取。 |
Docker 运行
作者文档提供的运行命令中,有很多参数一般情况下可以不使用,简化后的运行命令如下:
docker run -d \
--name mihomo \
--restart always \
-p 7890:7890 \
-p 9090:9090 \
-v /opt/mihomo/config:/config \
-e SUB_URL="https://example.com/sub?token=123" \
-e WEBUI_SECRET="secret123456" \
ghcr.io/dancying/mihomo:latest
需要将 SUB_URL 右边的链接地址改为你自己的订阅链接地址;
容器运行后可以通过访问 http://127.0.0.1:9090/ui 访问 WEB 面板;
WEB 面板的后端地址先删除默认的值,然后点击输入框会提供下拉选项,一般选择第二个;登录密码为 WEBUI_SECRET 环境变量的值
镜像托管在 GHCR 上,国内网络一般无需代理也能拉取镜像(部分时间段拉取镜像会有点慢);
以下是具体参数的使用解释:
--name : 指定容器名称,如果需要运行多个容器可以用来区分容器,例如 --name mihomo-demo1 、--name mihomo-demo2 等;
--restart : 设置启动方式,值为 always 会开机自启;
-p : 处理端口映射,左边是主机端口(浏览器或其他外部服务访问的端口),右边是容器内端口(容器内部服务运行的端口);
-v : 挂载主机目录到容器内部,一般用来保存容器内生成的数据、配置,该容器使用 /config 目录保存应用数据;
-e : 传入环境变量值,环境变量由容器内的应用读取并处理,环境变量名称由作者自由设定;
容器环境变量说明:
-e SUB_URL : 订阅链接地址,提供该环境变量后容器会向该链接地址发起请求并获取对应的 yaml 配置,该环境变量是可选的;
-e WEBUI_SECRET : WEB 面板的登陆密码,如果不传入则容器内会自动生成密码(可以查看容器日志获取生成的密码);
-e UPDATE_INTERVAL : 订阅链接更新间隔时间(小时),部分订阅链接需要定时更新否则配置会失效,如果不传入订阅链接变量 SUB_URL 则定时更新不会生效;
-e ALLOW_LAN : 是否允许局域网访问代理(非 WEB 面板),多数订阅配置默认值为 true ,如果不为 true 则需要传入并设置该变量为 true 否则无法访问代理;
-e MIXED_PORT : 混合代理(http 、 https 、 socks)端口,一般默认为 7890 ,也可以修改为喜欢的端口(需要同步调整 -p 参数右边的端口值);
-e MIHOMO_MODE : mihomo 内核代理模式,一般为 rule 模式,多数情况下无需修改;
-e IPV6 : 是否开启 ipv6 访问,部分网站可以使用 ipv6 访问,需要节点服务器和自身网络支持 ipv6 网络才建议开启;
-e WEBUI_LISTEN_ADDR : WEB 面板的监听地址和端口,默认是 0.0.0.0:9090 无需修改,如果修改端口则需要同步调整 -p 参数右边的端口值;