Solución:
La configuración equivalente para docker-compose v3 está usando el network_mode
clave: https://docs.docker.com/compose/compose-file/compose-file-v3/#network_mode
Deberías configurar network_mode
para "host"
en tus docker-compose.yml
.
Si usa docker swarm, consulte la respuesta de la estación de códigos.
Está mezclando opciones que no son válidas en las implementaciones de redacción y enjambre.
Si está implementando con docker-compose up, su archivo de composición debería ser así:
version: "3"
services:
web:
image: conatinera:latest
network_mode: "host"
restart: on-failure
Las opciones deploy
se ignora en el modo de redacción y la opción de puertos se ignora cuando se utiliza la red en modo host. Recomiendo no usar redes en modo host y usar un proxy inverso en otro contenedor para equilibrar sus contenedores escalados.
(No dude en ignorar esta parte de la respuesta ya que aclaró que no está utilizando despliegues de enjambre).
Si está utilizando la implementación de enjambre, su archivo de redacción debería ser así:
version: "3.4"
services:
web:
image: conatinera:latest
deploy:
replicas: 1
resources:
limits:
cpus: "0.5"
memory: 4G
restart_policy:
condition: on-failure
networks:
- host
networks:
host:
name: host
external: true
Nuevamente, los puertos publicados y las redes en modo host no se mezclan. También es probable que su escalado falle porque todos los contenedores intentarán vincularse al mismo puerto. Recomiendo no utilizar la red en modo host y dejar que la carga de la ventana acoplable equilibre la carga de sus réplicas.
Creo que debería definir el archivo docker-compose de esta manera: Este es solo un ejemplo, lea la documentación: https://docs.docker.com/compose/compose-file/#network-configuration-reference
version: "3"
services:
web:
image: conatinera:latest
networks:
mynetwork: {}
deploy:
replicas: 1
resources:
limits:
cpus: "0.5"
memory: 4G
restart_policy:
condition: on-failure
ports:
- "18080:8080"
networks:
mynetwork:
external: true
name: host