Подтвердить что ты не робот

Запустить контейнер с несколькими сетевыми интерфейсами

С 1.9, есть ли способ запустить контейнер непосредственно с двумя или более сетевыми интерфейсами?

Вы можете сделать это после того, как контейнер запущен с подключением к сети докеры, но это означает, что процесс уже запущен и может пропустить создание нового.

4b9b3361

Ответ 1

Этот вопрос занят поиском докеров и нескольких сетевых интерфейсов. Хотя это не является необходимой версией в вопросе, я оставляю здесь некоторую информацию:

С Docker 1.12+ можно добавить более одного сетевого интерфейса в контейнер докеров, но сначала необходимо создать контейнер, а затем присоединить второй (и подпоследовательный) сетевой сетевой адаптер до запуска контейнера:

$ docker create --network=network1 --name container_name containerimage:latest
$ docker network connect network2 container_name
$ docker start container_name

Сначала необходимо создать сети:

$ docker network create --driver=bridge network1 --subnet=172.19.0.0/24
$ docker network create --driver=bridge network2 --subnet=172.19.1.0/24

Кроме того, вы можете запустить контейнер, содержащий сетевые интерфейсы dockerhost, используя аргумент -network = host в запуске docker:

$ docker run --net=host containerimage:latest

Ответ 2

Как ответил @gesellix, в настоящее время это невозможно.

Вы можете найти эту проблему в разделе https://github.com/docker/docker/issues/17750

В этой области есть некоторые ожидающие улучшения. Как я вижу из обсуждений - текущая идея заключается в создании контейнера (с созданием докеров), присоединении сетей (подключение докеревой сети), а затем запуск (запуск докера).

Вы можете проверить рассуждения в комментариях https://github.com/docker/docker/pull/17796

UPD: # 17750 закрыт и будет доступен в 1.10

Ответ 3

Нет, это невозможно. Документы также показывают, что в опции командной строки --net только одно сетевое имя: http://docs.docker.com/engine/reference/run/#network-settings

Также помните, что Docker 1.9 постоянно обновляет файл /etc/hosts внутри ваших контейнеров, так что работающий процесс не может полагаться на начальное состояние этого файла. Лучшим способом было бы информировать ваш процесс об обновлениях, либо вручную просмотрев файл /etc/hosts, либо запросив DNS-сервер. Таким образом, у вас не будет проблем при подключении второй сети.