我如何 运行 两个 docker 容器使用同一个端口?

How can I run two docker containers using the same port?

我是 docker 容器的新手,但我有以下任务:

我有一个笔记本 运行ning Ubuntu 20.04,我必须在上面 运行 TTS(The Things Stack),它是 MQTT 代理,还有 Mosquitto。问题是两者都需要访问1883端口(MQTT通信的默认端口)

我想知道是否有办法配置这些容器,以便它们都具有 MQTT 连接。谢谢!

将一映射到 1883,将一映射到 1884。

容器可能都公开端口 1883,但您不能将它们都映射到主机上的该端口。所以映射一个到1883端口,第二个映射到1884端口。

这就是 docker 运行 命令行上的 -p 选项的作用。

所以对于一个容器做 -p 1883:1883 和另一个 -p 1884:1883

您只需要告诉您要连接到 1884 的客户端不要使用默认端口。