Вы смешиваете опции, которые являются недопустимыми как при компоновке, так и при роении.
Если вы развертываете с помощью docker-compose up, ваш файл компоновки должен выглядеть следующим образом:
version: "3"
services:
web:
image: conatinera:latest
network_mode: "host"
restart: on-failure
Параметры deploy
игнорируются в режиме компоновки, а параметр портов игнорируется при использовании сети в режиме хоста.Я рекомендую не использовать сетевую работу в режиме хоста и использовать обратный прокси-сервер в другом контейнере для балансировки ваших масштабированных контейнеров.
(Не стесняйтесь игнорировать эту часть ответа, поскольку вы пояснили, что вы не 't с использованием развертываний Swarm).
Если вы используете развертывание Swarm, ваш составной файл должен выглядеть следующим образом:
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
Опять же, опубликованные порты и работа в режиме хоста не смешиваются.Также возможно, что ваше масштабирование не удастся, потому что все контейнеры будут пытаться подключиться к одному и тому же порту.Я рекомендую не использовать работу в режиме хоста и разрешать балансировку нагрузки докера.