Docker中的networking设置
如果我在Docker中有一个networking设置,如下所示
这里MQTT
和Nodejs
是两个独立的Nodejs
容器。
我是否也必须使用TLS来保护channel A
? 我甚至需要保护channel A
吗? 我猜不,因为这只是集装箱通道的一个容器。 我对么?
就Docker而言,我是一个新手,但是我已经读到docker0
将允许容器docker0
通信,但是阻止外界连接到容器,直到端口从主机映射到容器。
目前还不清楚nodejs和mqtt broker是否在同一个docker容器或者两个独立的容器中,但是…
未映射到主机的端口的2个docker容器之间的链接将位于内部虚拟networking上,只要主机是安全的,stream量应该是安全的,唯一的方法是嗅探来自主机的stream量不需要运行SSL / TLS侦听器。
如果nodejs应用程序和代理程序都位于同一个Docker容器中,则它们可以通过localhost
进行通信,因此即使不通过虚拟networking互连,也不需要添加SSL / TLS。
除非主机系统有潜在的敌对容器或用户,否则我不会担心stream量。但有时我的想象力让我失望。
您可以使用弃用的–link标志来防止端口映射到主机(IIUC):
docker run --name mqtt mqtt:latest & docker run --name nodejs --link mqtt nodehs:latest
再次,IIUC,这创build了两个容器之间的专用networking…证据是netstat -an |grep EST
不显示这样连接的容器之间的连接,即使目标端口是向世界开放