Docker Compose: deshabilita la ruta de puerta de enlace predeterminada

Docker Compose: deshabilita la ruta de puerta de enlace predeterminada

¿Es posible evitar que Docker defina la ruta predeterminada cuando se utiliza el archivo yaml de Docker-Compose?

Si mi docker-compose.yaml define el ipam de red con el controlador predeterminado y cualquier subred, costuras como Docker (o Docker Compose) asignan automáticamente la ruta predeterminada a la tabla de enrutamiento de la ventana acoplable que está conectada a esta red). Hay alguna manera de desactivarlo?

Respuesta1

Lamentablemente no.

Una solicitud de función similar (#20179) ha estado abierto en el repositorio de GitHub durante casi 6 años, por lo que realmente creo que esta característica no se implementará pronto.

Mi solución actual es, similar a la que mencionó @Zoredache, agregar un script bash a sus contenedores y configurar la dirección IP de la puerta de enlace deseada a través de variables de entorno. El script elimina la ruta predeterminada y la vuelve a agregar con la IP personalizada como puerta de enlace.

Editar:la esencia de mi guión:

if [ -n "$GW" ]; then
    ip route delete default ;
    ip route add default via $GW ;
fi

Si desea cambiar la puerta de enlace predeterminada de su contenedor, ejecute el contenedor con la variable de entorno adecuada GW=192.168.0.1y el script se encarga del resto. Además, asegúrese de incluir el script en el CMDo ENTRYPOINTen su Dockerfile.
NOTA:Requiere el iproute2paquete.

Puede que no sea la solución más bonita, pero hace el trabajo.

información relacionada