为什么我们可以在 docker 运行命令行中有更多的时间 -p 选项



我看到一个docker运行命令行如下:

docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

此命令启动映像 rabbitmq:3-management 使用选项 --it,它以交互模式运行,因此我们可以在容器仍在运行时在容器内执行命令。 使用选项 --name,它允许我将 rabbitmq 名称分配给我的容器。

我不明白的是-p选项,为什么是两次?

我知道访问该过程的唯一方法是从内部。若要允许与容器的外部连接,必须打开(发布(特定端口。

所以它的工作原理是:docker run -p 8080:80 [image_name]. 所以这个命令 i 将容器中的 TCP 端口 80 映射到 Docker 主机上的端口 8080。

所以我的问题是为什么会这样

-p 5672:5672 -p 15672:15672 rabbitmq:3-management

为什么我有两次 -p? 为什么我有相同的端口5672:5672 and 15672:15672

谢谢

RabbitMQ 默认接受端口5672上的 TCP 客户端连接(消费者、发布者(。因此,-p 5672:5672表示"将主机上的端口5672映射到此容器的端口5672"。

RabbitMQ Management UI 是一个 HTTP 服务器,默认情况下侦听端口15672。因此,-p 15672:15672的意思是"将主机上的端口15672映射到此容器的端口15672",以便您可以在 Web 浏览器中访问管理 UI,例如localhost:15672

在这两种情况下,左侧的数字都是主机端口号。如果5672是已在主机上使用的端口,则可以将主机上的其他端口映射到容器,如-p 95672:5672

最新更新