web-dev-qa-db-fra.com

Désactiver ipv6 dans le conteneur Docker

J'ai ipv6 activé sur Docker Host mais il y a un conteneur particulier où ipv6 pose des problèmes. Existe-t-il un moyen de lancer un conteneur sans prise en charge ipv6, soit via un argument de ligne de commande ou une directive dockerfile?

9
Sergei Rodionov

Malheureusement, il n'y a pas: --ipv6 est un indicateur à l'échelle du démon qui ne peut pas être remplacé par conteneur.

3
icecrime

Deux options:

  1. Exécutez docker avec --dns-opt='options single-request'. Voir docs
  2. Courir avec --sysctl net.ipv6.conf.all.disable_ipv6=1. Voir discussion ici
7
d3ming

C'est un peu délicat. J'ai juste eu le même problème que ce que j'ai fait était d'exécuter le conteneur avec l'ip:

docker run --name YourDockerContainer -p 192.168.99.100:80:80

Cela va démarrer le conteneur sur cette ip: 192.168.99.100.

5
tokhi

A fonctionné pour moi:

docker run -d -i -t  --name Django_1.0 --sysctl 
net.ipv6.conf.all.disable_ipv6=1 -p 192.168.20.148:8000:8000/tcp -p 
192.168.20.148:8000:8000/udp -p 192.168.20.148:3000:3000/tcp -p 
192.168.20.148:3000:3000/udp IMAGE_NAME

root:~# netstat -tlp | grep -i docker

tcp  0  0 ip-192-168-20-148.:8000 *:*    LISTEN      4598/docker-proxy

tcp  0  0 ip-192-168-20-148.:3000 *:*    LISTEN      4642/docker-proxy
1
Rodrigo Marins

Lors de l'exécution de la commande docker à l'aide de --sysctl net.ipv6.conf.all.disable_ipv6=1 option et si elle échoue toujours passer l'argument suivant.

--sysctl net.ipv6.conf.all.disable_ipv6=0

0
rishi shah