Uso un docker swarm 1.13.1, y cuando inicio el docker swarm o me uno a docker swarm a veces crea una red docker_gwbridge en una subred "172.19.0.0/16".
Pero la subred de mi computadora está en el mismo rango, por lo que cuando inicializa esta red, la máquina host Docker Swarm se vuelve inaccesible desde mi computadora.
Entonces mi pregunta es: ¿cómo puedo cambiar la subred de la red docker existente?
> docker network ls NETWORK ID NAME DRIVER SCOPE ac1100164960 bridge bridge local 3838ae360f35 docker_gwbridge bridge local f9a77266aa15 host host local rgqnm19zbasv ingress overlay swarm 04c1c6b3ade7 none null localInspeccione la red:
> docker network inspect 3838ae360f35 [ { "Name": "docker_gwbridge", "Id": "3838ae360f3585f2cda8a43a939643cdd74c0db9bfb7f4f18b3b80ae07b3b9db", "Created": "2017-03-22T13:26:50.352865644+01:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.19.0.0/16", "Gateway": "172.19.0.1" } ] }, "Internal": false, "Attachable": false, "Containers": { "ingress-sbox": { "Name": "gateway_ingress-sbox", "EndpointID": "194d965dd2997bddb52eab636950e219043215a5a1a6a60d08f34e454a0eaa56", "MacAddress": "02:42:ac:13:00:02", "IPv4Address": "172.19.0.2/16", "IPv6Address": "" } }, "Options": { "com.docker.network.bridge.enable_icc": "false", "com.docker.network.bridge.enable_ip_masquerade": "true", "com.docker.network.bridge.name": "docker_gwbridge" }, "Labels": {} } ]Puede crear docker_gwbridge antes de inicializar el enjambre, como se explica aquí .
por ejemplo:
docker network rm docker_gwbridge docker network create --subnet=172.20.0.1/16 -o com.docker.network.bridge.enable_icc=false -o com.docker.network.bridge.name=docker_gwbridge docker_gwbridgeLa forma general de resolver esto, incluida cualquier red (que no sea de ingreso) que se crea para usted mediante docker u otras herramientas como docker-compose, es establecer los grupos de direcciones predeterminados en la configuración del demonio de docker .
En su caso, agregue a /etc/docker/daemon.json (o ~/.docker/daemon.json para Docker Desktop para Mac), por ejemplo:
{ "default-address-pools": [ { "base": "10.10.0.0/16", "size": 24 } ] } Con esto, su red docker bridge obtendrá una subred de 10.10.0.0/24 , y su docker swarm docker_gwbridge obtendrá una subred de 10.10.0.1/24 . Cualquier otra red que se cree para usted a partir de un archivo docker-compose.yml obtendrá la siguiente subred 10.10.0.2/24 . Y así.
No mencionó esto como un problema, pero desafortunadamente, esto no parece aplicarse a la red de ingress .