我使用Docker
与VirtualBox
和dinghy
和docker-compose
。 我通过docker-compose
创建了一个容器。以下是docker-compose.yml
配置。Docker虚拟主机缓存
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
并且用户docker
配置正确,我可以进入RabbitMQ
的管理页面。
我想试验一下,所以我删除了environment
部分。我删除了图像和容器,并重新构建/运行它。 我不明白的是,我仍然可以使用相同的uri访问管理页面,但这次我没有指定虚拟主机。
产生的yml
文件是这样的
rabbitmq:
image: rabbitmq:3-management
ports:
- "15672:15672"
- "5672:5672"
有什么我错过了?由于我不再指定一个虚拟主机,据我了解,这不应该发生。有没有办法查看Docker
正在使用的所有虚拟主机?
'管理用户界面将永远可以在任何主机名下访问,你是什么意思? – alkis
您用于管理界面的HTTP主机名是不重要的,它是'rabbitmq.docker',然后是容器的IP或任何其他主机名。如果你将端口15672映射到本地主机,'http:// localhost:15672'也可以正常工作,与http://127.0.0.1:15672或http:// [:: 1]相同: 15672'。 – helmbert
这就是我的理解,但我想确保。你测试过了吗?因为对我来说情况并非如此。我已经测试过这种可能性,并且唯一可用的HTTP主机名是容器的ip(预期的)和'rabbitmq.docker'。 – alkis