阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker启用IPV6支持与IPV6监听

33次阅读
没有评论

共计 1216 个字符,预计需要花费 4 分钟才能阅读完成。




本站提供 Linux 服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

Docker 安装完毕后默认是不支持 IPV6 方式监听和访问的,如果您的服务器支持 IPV6,且有 IPV6 需求,可以通过下面的方法启用 IPV6 支持。

我的场景

先来说说我的场景,最近有个特殊需求,要求容器的某个端口只能通过 IPV6 访问,不支持 IPV4 访问。然而默认的情况却与之相反,现目前支持 IPV4 访问,但不支持 IPV6 访问。因此需要先将 Docker 启用 IPV6 支持并设置 IPV6 监听。

Docker 启用 IPV6

修改 Docker 配置文件/etc/docker/daemon.json,如果没有就自己新建一个。然后复制下面的内容并保存:

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/64"
}
  • 2001:db8:1::/64是一个虚拟的 IPV6 网段,保持上面默认的复制下来即可。

然后输入命令:systemctl reload docker重载一次 Docker 服务,这样 Docker 就支持 IPV6 的监听和访问了。

仅监听 IPV6 地址

如果要想实现上面的屏蔽 IPV4 访问,仅支持 IPV6 访问,还需要进一步操作。默认情况下我们可以通过 -p 参数指定监听 IP 和映射端口,比如我们可以指定监听 127.0.0.1:80 可以这样做:

docker run -itd --name="onenav" -p 127.0.0.1:80:80 \
    -v /data/onenav:/data/wwwroot/default/data \
    helloz/onenav:0.9.27

如果只需要支持 IPV6 监听和访问,那么在启动容器的时候我们需要在 -p 参数后面使用 [] 来指定 IPV6 的 IP 监听,比如:

docker run -itd --name="onenav" -p [2a12:a301:2::1126]:80:80 \
    -v /data/onenav:/data/wwwroot/default/data \
    helloz/onenav:0.9.27
  • 如果指定 IPV6 地址监听,需要使用 [] 括起来
  • 2a12:a301:2::1126改成您自己的公网 IPV6 地址

如果需要同时支持 IPV4 和 IPV6 的监听和访问,那么只需要去掉 -p 参数后面的 IP 地址,仅保留端口即可,比如:

docker run -itd --name="onenav" -p 80:80 \
    -v /data/onenav:/data/wwwroot/default/data \
    helloz/onenav:0.9.27

总结

  • Docker 默认没有启用 IPV6 支持,需要通过修改配置文件启用
  • Docker 启用 IPV6 支持后,默认会同时监听 IPV4 和 IPV6
  • 如果只需要 IPV6 地址访问,-p参数后面需要通过 [ipv6 地址] 来指定,IPV6 地址需要使用[]

此文部分内容参考了:https://docs.docker.com/config/daemon/ipv6/

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计1216字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中