为什么我们可以在 docker 运行 命令行中有更多的时间 -p 选项
Why can we have more time -p options in docker run command line
我看到一个 docker 运行 命令行如下:
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
此命令启动映像 rabbitmq:3-管理
使用 --it 选项,它 运行s 处于交互模式,因此我们可以在容器仍然 运行ning 时在容器内执行命令。
使用选项 --name,它允许我将 rabbitmq 名称分配给我的容器。
我不明白的是-p选项,为什么是两次?
我知道访问进程的唯一方法是从进程内部。要允许外部连接到容器,您必须打开(发布)特定端口。
所以它的工作方式如下:docker run -p 8080:80 [image_name]
。
所以这个命令我将容器中的 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 管理 UI 是一个默认监听端口 15672
的 HTTP 服务器。所以 -p 15672:15672
的意思是“将主机上的端口 15672
映射到这个容器的端口 15672
” 这样你就可以像 [=18= 这样在网络浏览器中访问管理 UI ].
在这两种情况下,左边的数字是主机端口号。如果 5672
是您已经在主机上使用的端口,您可以将主机上的不同端口映射到容器,如 -p 95672:5672
.
我看到一个 docker 运行 命令行如下:
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
此命令启动映像 rabbitmq:3-管理 使用 --it 选项,它 运行s 处于交互模式,因此我们可以在容器仍然 运行ning 时在容器内执行命令。 使用选项 --name,它允许我将 rabbitmq 名称分配给我的容器。
我不明白的是-p选项,为什么是两次?
我知道访问进程的唯一方法是从进程内部。要允许外部连接到容器,您必须打开(发布)特定端口。
所以它的工作方式如下:docker run -p 8080:80 [image_name]
。
所以这个命令我将容器中的 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 管理 UI 是一个默认监听端口 15672
的 HTTP 服务器。所以 -p 15672:15672
的意思是“将主机上的端口 15672
映射到这个容器的端口 15672
” 这样你就可以像 [=18= 这样在网络浏览器中访问管理 UI ].
在这两种情况下,左边的数字是主机端口号。如果 5672
是您已经在主机上使用的端口,您可以将主机上的不同端口映射到容器,如 -p 95672:5672
.