在docker容器中禁用ip v6

Ser*_*nov 8 ipv6 docker

我在docker主机上启用了ipv6,但是有一个特定的容器,其中ipv6导致问题.有没有办法通过命令行参数或dockerfile指令启动没有ipv6支持的容器?

小智 8

我认为使用 Docker 禁用 ipv6 的方法是创建一个没有 ipv6 的网络。

例如

docker network create --ipv6=false disable_ipv6
Run Code Online (Sandbox Code Playgroud)

并运行:

docker run --network disable_ipv6
docker build --network disable_ipv6
Run Code Online (Sandbox Code Playgroud)


ice*_*ime 7

不幸的是,没有:--ipv6是一个守护进程范围的标志,不能在每个容器的基础上覆盖。


d3m*_*ing 7

两种选择:

  1. 运行docker --dns-opt='options single-request'.查看文档
  2. 运行--sysctl net.ipv6.conf.all.disable_ipv6=1.见这里的讨论


tok*_*khi 5

有点棘手。我只是遇到了同样的问题,就是用ip运行容器:

docker run --name YourDockerContainer -p 192.168.99.100:80:80
Run Code Online (Sandbox Code Playgroud)

这将在此ip:上启动容器 192.168.99.100


tri*_*eee 5

如果您想在 Linux Docker 镜像中禁用 IPv6,即使文件系统是只读的,这似乎也能起作用。

sysctl net.ipv6.conf.all.disable_ipv6=1
sysctl net.ipv6.conf.default.disable_ipv6=1
Run Code Online (Sandbox Code Playgroud)

这些命令是有特权的;sudo如果你不是,请与 一起运行root