Сетевое соединение с хостом почти никогда не требуется, и оно отключает некоторые основные функции Docker, такие как переназначение портов. Если вы удалите параметр network_mode: host
, вы можете выбрать, какой порт хоста будет использоваться, вообще не изменяя базовый образ.
version: '3'
services:
mysql:
image: mysql/mysql-server
ports:
# You pick the first (host) port.
# Second port is the port the container process uses,
# and is usually fixed per image.
- '3305:3306'
Сеть хоста также отключает нормальную связь между контейнерами, как описано в Составьте . Если вы специально не пытаетесь управлять сетью хоста или у вас действительно большое количество портов, которые вы слушаете (например, тысячи), вам следует использовать сеть по умолчанию («мост»). Единственным недостатком является то, что другие контейнеры не будут находиться на имени хоста localhost
, но это должно быть просто вопросом предоставления соответствующей конфигурации вашей службе.