为什么在docker run命令行中可以有更多的time-p选项
我看到docker运行命令行,如下所示:为什么在docker run命令行中可以有更多的time-p选项,docker,rabbitmq,docker-run,Docker,Rabbitmq,Docker Run,我看到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 -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
此命令启动映像rabbitmq:3-management
使用选项--it,它以交互模式运行,因此我们可以在容器仍在运行时在容器内执行命令。
通过选项--name,它允许我将rabbitmq名称分配给容器
我不明白的是-p选项,为什么是两次
我知道访问进程的唯一方法是从进程内部访问。要允许外部连接到容器,必须打开(发布)特定端口
所以它的工作原理是:docker run-p8080:80[image\u name]
。
因此,该命令i将容器中的TCP端口80映射到Docker主机上的端口8080
所以我的问题是为什么会这样
-p 5672:5672 -p 15672:15672 rabbitmq:3-management
为什么我有两次-p?
为什么我有相同的端口5672:5672和15672:15672
谢谢默认情况下,RabbitMQ接受端口
5672
上的TCP客户端连接(使用者、发布者)。因此-p 5672:5672
表示“将主机上的端口5672
映射到此容器的端口5672
”
RabbitMQ管理UI是一个HTTP服务器,默认情况下侦听端口15672
。因此-p 15672:15672
意味着“将主机上的端口15672
映射到该容器的端口15672
”,以便您可以在类似localhost:15672
的web浏览器中访问管理UI
在这两种情况下,左侧的数字都是主机端口号。如果5672
是主机上已使用的端口,则可以将主机上的其他端口映射到容器,如-p 95672:5672
此问题是否有帮助:。不过,我最好用“发布”这个词,而不是“公开”。