Docker虚拟主机缓存

时间:2015-12-29 17:02:57

标签: docker rabbitmq docker-compose dinghy

我正在Docker使用VirtualBoxdinghy以及docker-compose。 我正在通过docker-compose创建一个容器。以下是docker-compose.yml配置。

rabbitmq:
  image: rabbitmq:3-management
  ports:
    - "15672:15672"
    - "5672:5672"
  environment:
    VIRTUAL_HOST: 'rabbitmq.docker'
    VIRTUAL_PORT: 15672
    RABBITMQ_DEFAULT_USER: docker
    RABBITMQ_DEFAULT_PASS: docker

一切都很好。我可以访问网址RabbitMQ进入rabbitmq.docker:15672的管理页面,并正确配置用户docker

我想尝试一下,所以我删除了environment部分。我删除了图像和容器,然后再次构建/运行它。 我不明白的是,我仍然可以使用相同的uri访问管理页面,虽然这次我没有指定虚拟主机。

生成的yml文件是

rabbitmq:
  image: rabbitmq:3-management
  ports:
    - "15672:15672"
    - "5672:5672"

我错过了什么?由于我不再指定虚拟主机,根据我的理解,不应该发生这种情况。有没有办法查看Docker正在使用的所有虚拟主机?

1 个答案:

答案 0 :(得分:1)

  

有没有办法查看Docker正在使用的所有虚拟主机?

您在此上下文中误解了“虚拟主机”一词。 Docker完全没有虚拟主机的概念。在此上下文中,术语虚拟主机特定于RabbitMQ(或者更确切地说是由RabbitMQ实现的AMQP)。这是在RabbitMQ documentation(强调我的)中记录的:

  

[虚拟主机](或vhost)[...]指定协议引用的实体(交换和队列)的命名空间。 请注意,这不是HTTP意义上的虚拟主机。

使用rabbitmq Docker镜像时,无论您的VIRTUAL_HOST环境变量是什么,管理用户界面始终都可以在任何主机名下访问只要您使用该图片的3-management标记。)

我建议您仔细阅读documentation of the rabbitmq Docker image。在那里,您将看到该图像支持名为RABBITMQ_DEFAULT_VHOST的环境变量。 此图片不会以任何方式评估变量VIRTUAL_HOSTVIRTUAL_PORT,也不会产生任何影响。