提醒:本文最后更新于 2025-03-29 19:19,文中所关联的信息可能已发生改变,请知悉!
📕 永久自动更新 hosts 教程:网络自由不翻车!Docker 党必看
✨适合人群:经常遇到 TMDB/Github 连不上、Docker 服务抽风的小伙伴
🌐 教程效果:
- ✅ 每日自动合并最新 hosts
- ✅ 一键重启容器生效
- ✅ 告别手动改 IP 的烦恼
有兄弟说看不懂这个教程,我把原理给你讲清楚,还是不懂你就 deepseek 吧。
群里提供了 4 个原始文件,1 个是获取每天 TMDB 的可用 IP,1 个是获取每天 github 的可用 IP,一个是将这俩文件合并在一起的 combined_hosts 文件,最后一个是用来给定时任务执行更新指令的。说到这些你应该就明白这几个文件的作用了,根据教程把 update_hosts.sh
定时任务保证执行就可以了。
一、准备工作
1. 创建目录结构
在 moviepilot 的 config 文件夹下新建 hosts 文件夹,结构如下:
moviepilot-v2/
└── config/
└── hosts/
├── update_hosts.sh
├── tmdb_hosts
├── github_hosts
└── combined_hosts
文件在群里获取,加站长微信 izspace_cn 或者首页扫描加微信
二、配置 Docker 挂载
1. 修改 docker-compose.yml
在 volumes 部分添加以下挂载配置:
volumes:
- 你的 MP 目录 /config/hosts/combined_hosts:/etc/hosts/
重要提示:
combined_hosts
必须是一个文件,而不是目录- 如果
combined_hosts
是目录,Docker 会报错
2. 验证配置
进入容器检查 hosts 是否更新:
docker exec -it moviepilot cat /etc/hosts
三、设置定时任务(推荐宿主机方案)
1. 获取 root 权限
sudo -i
2. 编辑定时任务
crontab -e
3. 添加定时任务(每天 6 点执行)
0 6 * * * /bin/bash /tmp/zfsv3/ 你的硬盘名 / 你的手机号 /data/ 你的 Docker 文件夹 / 你的 MP 名 /config/hosts/update_hosts.sh
示例路径:
0 6 * * * /bin/bash /tmp/zfsv3/nvme13/185XXXXXXXX/data/Docker/moviepilot-v2/config/hosts/update_hosts.sh
4. 保存设置
- 按
ctrl+o
保存 - 按回车确认
- 按
ctrl+x
退出
四、验证与检查
1. 验证定时任务
sudo crontab -l # 确认任务已添加
2. 检查日志
cat /var/log/update_hosts.log
3. 检查文件更新时间
次日查看文件修改时间是否为早上 6 点
⚠️ 注意事项
如果次日发现没有按时更新:
- 检查问题原因
- 或者删除 hosts 映射目录
- 否则可能导致无法连接 MP
✅ 宿主机方案优势:
- 无需修改容器配置
- 日志文件存储在宿主机方便排查
- 与容器生命周期解耦
✨ 小贴士:
遇到问题可以加站长微信 izspace_cn 获取帮助
正文完
发表至: Docker
2025-03-16