У меня есть машина с Windows 10 с установленным докером. Хост подключен к частной LAN 192.168.0.0/24. Мое приложение-контейнер предоставляет порт UDP и TCP. Я хотел бы запустить несколько экземпляров контейнера и сделать их доступными для других (не докеров) компьютеров в одной сети. Я должен иметь возможность использовать определенные номера портов, а не случайно сгенерированные. Как я могу это сделать?
Поскольку никто не ответил, и теперь я сам разобрался, отвечу на свой вопрос. Конечно, есть и другие способы снять шкуру с этой кошки ...
Спрятано от https://docs.docker.com/machine/drivers/hyper-v/
Контейнеры будут иметь сопоставление портов 1: 1 на хосте, поэтому мы создадим машину для каждого контейнера, который хотим запустить.
docker-machine create --driver hyperv --hyperv-virtual-switch "concise_name" My_Node_1
docker-machine env My_Node_1
& "C:\Program Files\Docker Toolbox\docker-machine.exe" env My_Node_1 | Invoke-Expression
Отныне все docker
команды будут выполняться на машине My_Node_1
.docker build . -t image_name
--net=host
, например docker run -i -t -P -d --net=host --rm image_name
Промыть и повторить из «Создание узлов / машин» для необходимого количества контейнеров.