Docker的一些踩坑,ipv6设置

前言

前不久打电话要来了运营商给的ipv6地址,然后使用DDNS-GO解析到了域名上。

按理来说,我应该可以使用域名+端口的方式访问NAS上的服务,但是实际上却无法访问

问题排查

排查了一番之后,确定是docker的问题。

这是因为docker默认并没有开启ipv6的访问权限,在面板中可以到。

而且在网上查了一下,要给docker配置ipv6还是较为繁琐的。

而且公网ipv6是动态的,写进配置文件也不行。

但是在最后还是摸索出了两个解决方案

使用反向代理

使用群晖NAS自带反向代理。

控制面板→应用程序门户→反向代理服务器,新增一个服务,描述可以随便填。

来源

  • 协议,选择http,如果你想要设置https也可以,但要需要你对应用本身支持。
  • 主机名,不用动,保持默认的”*“。
  • 端口,选择你希望外网访问的端口,但不能写已经占用的端口。

目的地

  • 协议,一般选择http,如果你的应用是支持https,可以开启。
  • 主机名,保持默认,“localhost”或者”127.0.0.1“。
  • 端口,填docker部署时的映射端口。

然后点击确认即可,随后你就可以通过域名加端口访问你对服务了。

不使用反向代理

反向代理就已经可以解决无法访问的问题,但考虑到有一些服务是不支持反向代理,比如MC服务器之类的,因此这个问题还不算完全解决。

虽然Docker显示”ipv6已禁用“,但是如果你的NAS可以正常获取ipv6地址的话。

那么代表Docker是可以正常使用ipv6的,也就是使用域名+端口直接访问服务。

但需要你把docker应用的网络模式改为”host“模式,这代表着与群晖公用一个网络环境。

比如:

虽然显示已禁用,但是可以通过域名+端口直接访问。

如果你是使用docker-compose,那么你只需要在配置文件上添加这么一行。

network_mode: 'host'

然后重启docker服务即可。

小结

因为我是使用ipv6解析的域名,因此无法通过域名+端口,也就是ipv6的方式访问docker服务,但实际上只需要把docker的网络模式改为host,这个问题就解决了。如果不想端口被占用,那么可以使用群晖自带的反向代理服务,一样的效果。


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Source: https://t.me/addstickers/ShizukuLulu_Vtuber
Source: https://t.me/addstickers/Necora_Nyaru
颜文字
Emoji
小恐龙
花!
雫るる
nyaru
上一篇
下一篇