Nodo Docker Con Varias Direcciones IP: Cambio Entre Ellas

Mi configuración de red se ve así en un host docker:

➜  server git:(master) ✗ ip addr3: ens9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000    link/ether 00:02:c9:bb:3b:f4 brd ff:ff:ff:ff:ff:ff    inet <IP Address>.18/29 brd <Default Gateway>.23 scope global ens9       valid_lft forever preferred_lft forever    inet <IP Address>.19/29 brd <Default Gateway>.23 scope global secondary ens9:0       valid_lft forever preferred_lft forever

Actualmente, tengo servicios existentes que no son de Docker que se ejecutan en el puerto 443 en el .18 Dirección IP, y necesito mantenerla así. Sin embargo, cuando abro un puerto usando un Dockerfile, no se inicia porque el puerto 443 ya está en uso por el anfitrión.

¿Hay alguna forma de cambiar globalmente la dirección IP que usa Docker al abrir un puerto? No quiero tener que configurar esto manualmente en el archivo de configuración de cada contenedor, que por supuesto ya funciona.

No es necesario exponer puertos para acceder a determinados contenedores en la declaración de servicio. De hecho, puede declarar una red dentro de un único docker-compose.yml con una subred diferente como esta:

version: '2'networks:  custom-network:    ipam:      driver: default      config:        - subnet: 73.0.0.0/16          ip_range: 73.0.0.0/24          gateway: 73.0.0.254services:  simple-nginx:    image: nginx    networks:      custom-network:        ipv4_address: 73.0.0.10

Y acceda al servicio nginx utilizando la IP estática 73.0.0.10 para la red personalizada.

Para obtener más información, siempre puede consultar los documentos de red de docker-compose:https://docs.docker.com/compose/networking/

O directamente los docs de Docker:https://docs.docker.com/engine/userguide/networking/