Запуск нескольких контейнеров mysql с другим портом с использованием сети хоста - PullRequest
0 голосов
/ 17 ноября 2018

У меня на сервере запущен сервер Mysql с портом по умолчанию 3306. Я хочу запустить Docker-контейнер MySQL с использованием сетевого хоста, но с другим портом.

Моя конфигурация определена в файле docker-compose. После создания образа и попытки запуска контейнера он запускается и завершает работу с уведомлением о конфликте портов.

Есть ли способ динамически изменить порт контейнера перед запуском? Я не хочу использовать сетевой мост.

1 Ответ

0 голосов
/ 17 ноября 2018

Если использование хост-сети является жестким требованием, то ничто в пространстве Docker не сможет контролировать или ограничивать те порты, которые служба использует или не использует.Вам необходимо изменить специфический для службы файл конфигурации, переменную среды или аргумент командной строки, чтобы он прослушивался где-то еще.

Особенно для серверов, которые прослушивают один TCP-порт (например, для большинства баз данных и на основе HTTP).серверы) настройка моста Docker / NAT по умолчанию должна работать нормально;альтернативные настройки, такие как хост-сеть и macvlan, не нужны.Если вы хотите использовать стандартную настройку, это тривиально:

version: '3'
services:
  mysql:
    image: mysql
    ports: ['9999:3306'] # listen on host port 9999 instead
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...