Если у меня есть настройки сети в Docker, следующим образом Докерская сеть

Здесь MQTT и Nodejs - два отдельных контейнера докеров.

Нужно ли мне также использовать TLS для защиты channel A? Должен ли я даже охранять channel A? Я думаю, нет, так как это просто канал от контейнера к контейнеру. Я прав?

Я новичок в том, что касается Docker, но я читал, что docker0 позволяет контейнерам взаимодействовать, но не позволяет внешнему миру соединяться с контейнерами, пока порт не будет сопоставлен с хостом на контейнер.

1
Rajat Saxena 28 Май 2017 в 18:45

2 ответа

Лучший ответ

Из вопроса не ясно, находятся ли узел js и mqtt-брокер в одном контейнере Docker или в двух отдельных контейнерах, но ...

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

Если приложение nodejs и брокер находятся в одном и том же контейнере Docker, они могут обмениваться данными через localhost, поэтому даже через виртуальное сетевое соединение, поэтому снова не нужно добавлять SSL / TLS.

1
hardillb 28 Май 2017 в 16:17

Я не буду беспокоиться о трафике, если у хост-системы нет потенциальных враждебных контейнеров или пользователей ... но иногда мое воображение подводит меня.

Вы можете использовать устаревший флаг --link, чтобы предотвратить отображение порта на хост (IIUC):

docker run --name mqtt mqtt:latest & docker run --name nodejs --link mqtt nodehs:latest

Опять же, IIUC, это создает частную сеть между двумя контейнерами ... Свидетельство тому - netstat -an |grep EST не показывает соединения между контейнерами, которые --link'd таким образом, даже если один целевой порт открыт для мира

1
Rondo 29 Май 2017 в 20:56