嗨,我发现如何创建一个可以运行Rabbitmq容器的docker文件非常令人困惑,我可以在其中公开端口,以便可以通过本地主机和端口号导航到管理控制台。
我看到有人提供了这个dockerfile示例,但是不确定如何运行它?
version: "3"
services:
rabbitmq:
image: "rabbitmq:3-management"
ports:
- "5672:5672"
- "15672:15672"
volumes:
- "rabbitmq_data:/data"
volumes:
rabbitmq_data:
我让兔子在当地可以正常工作,但是每个人都告诉我码头工人是未来,以这个速度我不明白。
以上内容看起来像是运行Rabbitmq容器的有效方法吗?在哪里可以找到完整的可以理解的示例?
非常感谢
安德鲁
答案 0 :(得分:8)
您发布的不是 Dockerfile 。这是一个 docker-compose 文件。
要运行它,您需要
1)创建一个名为 docker-compose.yml 的文件,并将以下内容粘贴到其中:
version: "3"
services:
rabbitmq:
image: "rabbitmq:3-management"
ports:
- "5672:5672"
- "15672:15672"
volumes:
- "rabbitmq_data:/data"
volumes:
rabbitmq_data:
2)下载docker-compose(https://docs.docker.com/compose/install/)
3)(重新)启动Docker。
4)在控制台上运行:
cd <location of docker-compose.yml>
docker-compose up
您有一个docker-compose文件。 rabbitmq:3-management
是使用RabbitMQ Dockerfile构建的Docker映像(您不需要。此映像将在您第一次运行docker-compose up
时下载。
"5672:5672"
指定队列的端口。
"15672:15672"
指定管理插件的端口。
左侧的数字是您可以从容器外部访问的端口。因此,如果要使用其他端口,请在左侧上更改端口。正确的是在内部定义的。
这意味着您可以在http:\\localhost:15672
(或更常见的http:\\<host-ip>:<port exposed linked to 15672>
)之后访问管理插件。
您可以在Docker Hub上查看RabbitMQ图像的更多信息。
我假设您要使用相同的容器,因为您要保留数据。您可以使用docker-compose stop
重新启动计算机,然后运行docker-compose start
。然后使用相同的容器。但是,如果该容器曾经被删除,则您将丢失其中的数据。
这就是为什么您使用Volumes。容器中收集的数据也将存储在主机中。因此,如果您删除容器并启动一个 new 容器,则数据仍然存在,因为它已存储在主机中。