Docker 使用 rabbitmq 网络
Docker with rabbitmq networking
我无法理解 docker 端口映射的工作原理。我有一个包含几个容器的 docker-compose 文件,其中一个是 rabbitmq 服务。
docker-compose 文件是:
version: "3.9"
volumes:
test:
external: true
services:
rabbitmq3:
container_name: "rabbitmq"
image: rabbitmq:3.8-management-alpine
environment:
- RABBITMQ_DEFAULT_USER=myuser
- RABBITMQ_DEFAULT_PASS=mypassword
ports:
# AMQP protocol port
- '5671:5672'
# HTTP management UI
- '15671:15672'
因此容器使用 docker compose up 运行,没问题。但是当我使用 container_ip:15671 或 container_ip:15671 访问 rabbitmq 管理插件时,我没有得到任何东西。但是当我使用127.0.0.1:15672访问它时,我可以访问管理插件。
这可能是一个愚蠢的问题,但如何使用本地主机访问容器服务?
端口语义就是这样<HOST_PORT>:<CONTAINER_PORT>
。所以 -p 15671:15672
意味着容器端口 15672 映射到您机器上的端口 15671。
根据您的 docker 撰写文件,端口 5671 和 15671 在您的计算机上公开。
可以使用 http://localhost:15671
访问管理门户,可以使用 http://localhost:5671
.
使用 rabbitmq 服务
IP 127.0.0.1
是 localhost
。
我无法理解 docker 端口映射的工作原理。我有一个包含几个容器的 docker-compose 文件,其中一个是 rabbitmq 服务。
docker-compose 文件是:
version: "3.9"
volumes:
test:
external: true
services:
rabbitmq3:
container_name: "rabbitmq"
image: rabbitmq:3.8-management-alpine
environment:
- RABBITMQ_DEFAULT_USER=myuser
- RABBITMQ_DEFAULT_PASS=mypassword
ports:
# AMQP protocol port
- '5671:5672'
# HTTP management UI
- '15671:15672'
因此容器使用 docker compose up 运行,没问题。但是当我使用 container_ip:15671 或 container_ip:15671 访问 rabbitmq 管理插件时,我没有得到任何东西。但是当我使用127.0.0.1:15672访问它时,我可以访问管理插件。
这可能是一个愚蠢的问题,但如何使用本地主机访问容器服务?
端口语义就是这样<HOST_PORT>:<CONTAINER_PORT>
。所以 -p 15671:15672
意味着容器端口 15672 映射到您机器上的端口 15671。
根据您的 docker 撰写文件,端口 5671 和 15671 在您的计算机上公开。
可以使用 http://localhost:15671
访问管理门户,可以使用 http://localhost:5671
.
IP 127.0.0.1
是 localhost
。