嗨,我发现如何创建一个运行 rabbitmq 容器的 docker 文件非常令人困惑,我可以在其中公开端口,以便我可以通过 localhost 和端口号导航到管理控制台。
我看到有人提供了这个 dockerfile 示例,但不确定如何运行它?
version: "3"
services:
rabbitmq:
image: "rabbitmq:3-management"
ports:
- "5672:5672"
- "15672:15672"
volumes:
- "rabbitmq_data:/data"
volumes:
rabbitmq_data:
我让兔子在本地工作得很好,但每个人都告诉我 docker 是 future ,按照这个速度我不明白。
以上看起来像运行rabbitmq容器的有效方法吗?我在哪里可以找到一个完全可以理解的例子?
非常感谢
安德鲁
最佳答案
Docker-compose
您发布的内容不是 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 文件还是我误解了它?
你有一个 docker-compose 文件。
rabbitmq:3-management
是使用 RabbitMQ Dockerfile 构建的 Docker 镜像(您 不需要 需要。该镜像将在您第一次运行时下载 docker-compose up
。如何指定端口?在上面的例子中,第一个数字 5672:5672 是什么,最后一个数字是什么?
"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 的原因.在您的容器中收集的数据也会存储在您的主机中。因此,如果您移除容器并启动一个新容器,数据仍然存在,因为它存储在主机中。
关于docker rabbitmq 如何使用 docker 文件公开端口和重用容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51578794/