Docker虚拟主机caching
我使用的是与VirtualBox
和dinghy
和docker-compose
Docker
。 我正在通过docker-compose
创build一个容器。 以下是docker-compose.yml
configuration。
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
一切都很好。 我可以通过访问url rabbitmq.docker:15672
进入RabbitMQ
的pipe理页面,并且用户rabbitmq.docker:15672
configuration正确。
我想尝试一下,所以我删除了environment
部分。 我删除了图像和容器,并重新构build/运行。 我不明白的是这个,我仍然可以使用相同的uri访问pipe理页面,虽然这次我没有指定一个虚拟主机。
产生的yml
文件是这样的
rabbitmq: image: rabbitmq:3-management ports: - "15672:15672" - "5672:5672"
我错过了什么? 由于我不再指定一个虚拟主机,据我了解,这不应该发生。 有没有办法看到Docker
使用的所有虚拟主机?
有没有办法看到Docker使用的所有虚拟主机?
在这种情况下,您误解了“虚拟主机”这个词。 Docker根本没有虚拟主机的概念。 在这种情况下, 虚拟主机一词是特定于RabbitMQ(或更确切地说是由RabbitMQ实现的AMQP)。 这是在RabbitMQ文档 (重点是我的) 文档 :
[…]“虚拟主机”(或虚拟主机)指定协议引用的实体(交换和队列)的命名空间。 请注意,这不是HTTP的虚拟主机。
当使用rabbitmq
Docker镜像时,无论您的VIRTUAL_HOST
环境variables(只要您使用该镜像的3-management
标签),pipe理UI 总是可以在任何主机名下访问 。
我build议彻底阅读rabbitmq
Docker镜像文档 。 在那里你会看到图像支持名为RABBITMQ_DEFAULT_VHOST
的环境variables。 VIRTUAL_HOST
和VIRTUAL_PORT
variables不以任何方式被这个图像评估,并且根本没有任何效果。