共计 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 地址需要使用[]
正文完
星哥说事-微信公众号
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)