与使用Docker手动运行相比,使用Dockerfile在Docker中发布端口时出现问题。使用以下命令,Docker容器成功启动,当我使用http://192.168.99.100:8080访问浏览器中的主机IP地址(192.168.99.100)时,将加载RabbitMQ Web管理仪表板。
docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3.5.6-management
此时,我运行以下命令从Dockerfile中释放我想要使用的端口:
docker stop some-rabbit
当我运行以下docker-compose命令时,一旦我访问上面的同一个URL(http://192.168.99.100:8080),我收到“此站点无法访问192.168.99.100拒绝连接。”
docker-compose build
docker-compose up -d
这是我正在使用的Dockerfile:
version: '2'
services:
rabbitmq:
container_name: rabbit
hostname: rabbit
ports:
- "8080:15762"
image: rabbitmq:3.5.6-management
以下是docker ps
docker run
的结果
6c5a97bd51bc rabbitmq:3.5.6-management "/docker-entrypoint.s" 16 seconds ago Up 15 seconds 4369/tcp, 5671-5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:8080->15672/tcp some-rabbit
以下是docker ps
docker-compose up -d
的结果
99987aeb5cbf rabbitmq:3.5.6-management "/docker-entrypoint.s" 13 seconds ago Up 11 seconds 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp, 0.0.0.0:8080->15762/tcp rabbitmq
答案 0 :(得分:2)
经过进一步测试,我发现RabbitMQ使用的所有端口必须在Dockerfile中显式发布。
version: '2'
services:
rabbitmq:
container_name: rabbitmq
hostname: rabbitmq
ports:
- "4369:4369"
- "5672:5672"
- "15672:15672"
- "25672:25672"
image: rabbitmq:3.5.5-management