文章摘要
😇 前言 大数据课的坑娃实录:当 Hue 遇上 "薛定谔的环境,本以为 Docker 是避风港,结果它把我推向了更深的技术深渊..." 对象大数据课要求部署 Hue 可视化工具,看着官方 GitHub 上明晃晃的 Dockerfile ,我拍着胸脯说 "这有何难"—— 毕竟 Docker 的 slogan 不就是 "一次构建,到处运行" 嘛?结果她电脑复杂的环境,差点让我原地轮回。以下是一些问题…
😇 前言 大数据课的坑娃实录:当 Hue 遇上 "薛定谔的环境,本以为 Docker 是避风港,结果它把我推向了更深的技术深渊..." 对象大数据课要求部署 Hue 可视化工具,看着官方 GitHub 上明晃晃的 Dockerfile ,我拍着胸脯说 "这有何难"—— 毕竟 Docker 的 slogan 不就是 "一次构建,到处运行" 嘛?结果她电脑复杂的环境,差点让我原地轮回。以下是一些问题实录。 🕵️♂️ 坑娃破案时刻实录 🔧 Docker 镜像编译历险记:当 Hue 遇上 DNS 迷局 💥 经典剧情:我就知道会出问题 官方说支持 ARM 但不给镜像?没关系,我自己造!—— 直到被 DNS 按在地上摩擦 遇事不决,先 Google 一下,检索问题相关信息,我找到了以下三篇 "秘籍" : ✅ GitHub PR#4149 :有人提交了 ARM64 的 CI 流程 ✅ Discourse 论坛 :官方明确答复 "ARM64 是支持的"(还好没白折腾手动编译) ✅ 官方文档 :直接甩出构建命令!抄起键盘就是干 从以上两个链接可以知道,官方其实是支持运行在 arm 上的。不过官方没有提供 arm64 的 docker 镜像,我看有人提交了对应 cicd 的 pr ,不过没被 merge docker build https://github.com/cloudera/hue.git#release-4.11.0 -t gethue/hue:4.11.0 -f tools/docker/hue/Dockerfile docker tag gethue/hue:4.11.0 gethue/hue:latest 本以为复制粘贴上述代码,编译完镜像就能下班,结果 ports.ubuntu.com 给我表演了个 "查无此站"—— 🌐 科学上网?没用!🔧 换国内源?试过了!📚 翻到 Medium 神文说要改 DNS,测试命令直接给我暴击: 本以为复制粘贴就能下班,结果 ports.ubuntu.com 给我表演了个"查无此站"—— 🌐 科学上网?没用! 🔧 换国内源?试过了! 📚 翻到 Medium神文 ,说要改DNS,测试命令直接给我暴击: docker run busybox nslookup google.com ;; connection timed out; no servers could be reached 🎯 绝处逢生:给Docker开"后门" 灵机一动加上 --network=host 参数(感谢Docker网络玄学): docker run --network=host busybox nslookup google.com 居然活了!活了!赶紧给构建命令也加上这个"续命符",编译进度条终于开始欢快跳动~ docker build --network=host https://github.com/cloudera/hue.git#release-4.11.0 -t gethue/hue:4.11.0 -f tools/docker/hue/Dockerfile docker tag gethue/hue:4.11.0 gethue/hue:latest 🚀 续命成功但未完待续 搞定镜像编译后启动容器: docker run \ -it \ -p 8888:8888 \ -v ~/docker/hue/config/hue.ini:/usr/share/hue/desktop/conf/hue.ini \ --name my-hue-instance \ --add-host=host.docker.internal:host-gateway \ --add-host=$(hostname):$(hostname -I | awk '{print $1}') \ gethue/hue:latest (内心OS:按照技术折腾守恒定律,这波操作后应该...又要出幺蛾子了吧?) 🌐 网桥崩坏现场:Docker 网络的 "背叛" 与救赎 镜像编译成功≠万事大吉,Docker 用实际行动告诉我:网络问题才是终极 BOSS 🕵️♂️ 破案线索:隔离网络的致命破绽 明明 --network=host 模式下一切正常,换回容器网络立刻"DNS罢工"——这症状像极了Docker网桥在背后捅刀子! 🔍 现场勘查 : 容器内 ping bilibili.com 不通, curl google.com 也未响应 宿主机网络正常,其他容器也不能上网 结论: docker0网桥接口黑化实锤 ! ⚠️ 高危:网桥重置仪式 (友情提示:以下操作需穿戴"数据防护甲",生产环境请先焚香祷告) sudo service docker stop # 给Docker断个电 sudo pkill docker # 确保连进程尸体都别剩 # sudo iptables -t nat -F # 【生产环境慎点!】这行是清除所有NAT规则的致命咒语 sudo ifconfig docker0 down # 把故障网桥打入冷宫 sudo brctl delbr docker0 # 物理删除这个叛徒 sudo service docker start # Docker重生仪式 🎉 复活时刻:网络通畅的治愈瞬间 重启后, Docker 会自动重建纯洁的 docker0 网桥,再次运行容器测试网络时—— # 执行 docker run busybox nslookup google.com DNS解析成功的那一刻,世界都明亮了✨ 继续马不停蹄,尝试运行 Hue 🎮 终局之战:Hue 魔丸降服仪式 历经九九八十一难,终于听到了胜利的 BGM! 🔄 重启仪式:给容器最后一次机会 docker restart my-hue-instance (内心 OS:这次要是再崩,我就把电脑打包送给 Docker 总部当祭品, hhh 开玩笑,我可舍不得😂) 🌐 浏览器朝圣时刻 颤抖着在地址栏输入 localhost:8888 ⏳ 加载动画像一个世纪那么长 突然!熟悉的 Hue 登录界面带着圣光出现! (此时应有《权力的游戏》主题曲响起,配合弹幕 "恭迎陛下登基") 😌 总结 参考 回顾这趟踩坑之旅: 编译时就被DNS 解析玩起了捉迷藏,运行容器后,网桥接口还是贼心不死。如今看着登录框里闪烁的光标,突然理解了什么叫 "技术人的快乐如此简单"。 以下是我在解决问题时查阅的资料列表,感谢互联网,让我的问题能解决得如此迅速,OK,收工。 又水了一篇博文QAQ Development :: Hue SQL Assistant Documentation Is Linux ARM64 a supported platform - Administrator: installation, configuration - Hue Discourse [ci] Add ARM64 CI workflow for Python 3.11 build and testing by Harshg999 · Pull Request #4149 · cloudera/hue · GitHub SOLVED: Docker build “Could not resolve ‘archive.ubuntu.com’” apt-get fails to install anything | by Faithful Anere | Medium 解决Docker容器内无法访问外网问题解决Docker容器内无法访问外网问题 🚀法一:重建网络docker0 🚀法二 - 掘金😇 前言
大数据课的坑娃实录:当 Hue 遇上 "薛定谔的环境,本以为 Docker 是避风港,结果它把我推向了更深的技术深渊..."
对象大数据课要求部署 Hue 可视化工具,看着官方 GitHub 上明晃晃的Dockerfile,我拍着胸脯说 "这有何难"—— 毕竟 Docker 的 slogan 不就是 "一次构建,到处运行" 嘛?结果她电脑复杂的环境,差点让我原地轮回。以下是一些问题实录。
🕵️♂️ 坑娃破案时刻实录
🔧 Docker 镜像编译历险记:当 Hue 遇上 DNS 迷局
💥 经典剧情:我就知道会出问题
官方说支持 ARM 但不给镜像?没关系,我自己造!—— 直到被 DNS 按在地上摩擦
遇事不决,先 Google 一下,检索问题相关信息,我找到了以下三篇 "秘籍" :
- ✅
GitHub PR#4149:有人提交了 ARM64 的 CI 流程 - ✅
Discourse 论坛:官方明确答复 "ARM64 是支持的"(还好没白折腾手动编译) - ✅
官方文档:直接甩出构建命令!抄起键盘就是干
从以上两个链接可以知道,官方其实是支持运行在 arm 上的。不过官方没有提供 arm64 的 docker 镜像,我看有人提交了对应 cicd 的 pr,不过没被 merge
本以为复制粘贴上述代码,编译完镜像就能下班,结果ports.ubuntu.com给我表演了个 "查无此站"——
🌐 科学上网?没用!🔧 换国内源?试过了!📚 翻到 Medium 神文说要改 DNS,测试命令直接给我暴击:
本以为复制粘贴就能下班,结果ports.ubuntu.com给我表演了个"查无此站"——
🌐 科学上网?没用! 🔧 换国内源?试过了!
📚 翻到Medium神文,说要改DNS,测试命令直接给我暴击:
🎯 绝处逢生:给Docker开"后门"
灵机一动加上--network=host参数(感谢Docker网络玄学):

居然活了!活了!赶紧给构建命令也加上这个"续命符",编译进度条终于开始欢快跳动~

🚀 续命成功但未完待续
搞定镜像编译后启动容器:
(内心OS:按照技术折腾守恒定律,这波操作后应该...又要出幺蛾子了吧?)
🌐 网桥崩坏现场:Docker 网络的 "背叛" 与救赎
镜像编译成功≠万事大吉,Docker 用实际行动告诉我:网络问题才是终极 BOSS
🕵️♂️ 破案线索:隔离网络的致命破绽
明明--network=host模式下一切正常,换回容器网络立刻"DNS罢工"——这症状像极了Docker网桥在背后捅刀子!
🔍 现场勘查:
- 容器内
ping bilibili.com不通,curl google.com也未响应 - 宿主机网络正常,其他容器也不能上网
结论:docker0网桥接口黑化实锤!

⚠️ 高危:网桥重置仪式
(友情提示:以下操作需穿戴"数据防护甲",生产环境请先焚香祷告)
🎉 复活时刻:网络通畅的治愈瞬间
重启后,Docker会自动重建纯洁的docker0网桥,再次运行容器测试网络时——

DNS解析成功的那一刻,世界都明亮了✨
继续马不停蹄,尝试运行 Hue
🎮 终局之战:Hue 魔丸降服仪式
历经九九八十一难,终于听到了胜利的 BGM!
🔄 重启仪式:给容器最后一次机会
(内心 OS:这次要是再崩,我就把电脑打包送给 Docker 总部当祭品, hhh 开玩笑,我可舍不得😂)
🌐 浏览器朝圣时刻
颤抖着在地址栏输入localhost:8888
⏳ 加载动画像一个世纪那么长
突然!熟悉的 Hue 登录界面带着圣光出现!
(此时应有《权力的游戏》主题曲响起,配合弹幕 "恭迎陛下登基")

😌 总结 & 参考
回顾这趟踩坑之旅:
编译时就被DNS 解析玩起了捉迷藏,运行容器后,网桥接口还是贼心不死。如今看着登录框里闪烁的光标,突然理解了什么叫 "技术人的快乐如此简单"。
以下是我在解决问题时查阅的资料列表,感谢互联网,让我的问题能解决得如此迅速,OK,收工。又水了一篇博文QAQ
- Development :: Hue SQL Assistant Documentation
- Is Linux ARM64 a supported platform - Administrator: installation, configuration - Hue Discourse
- [ci] Add ARM64 CI workflow for Python 3.11 build and testing by Harshg999 · Pull Request #4149 · cloudera/hue · GitHub
- SOLVED: Docker build “Could not resolve ‘archive.ubuntu.com’” apt-get fails to install anything | by Faithful Anere | Medium
- 解决Docker容器内无法访问外网问题解决Docker容器内无法访问外网问题 🚀法一:重建网络docker0 🚀法二 - 掘金
本文采用 CC BY-NC-SA 4.0 协议进行授权,如无注明均为原创,转载请注明出处。
标题:放弃吧?不!Hue 在 Linux ARM64 上的绝境求生指南作者:九仞之行链接:http://dev.styunlen.cn/archives/post-1745.html

还没有评论呢 ~ 快来抢沙发吧 🛋️