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.1localhost