docker rabbitmq如何使用docker文件公开端口并重用容器

时间:2018-07-29 09:03:10

标签: docker rabbitmq

嗨,我发现如何创建一个可以运行Rabbitmq容器的docker文件非常令人困惑,我可以在其中公开端口,以便可以通过本地主机和端口号导航到管理控制台。

我看到有人提供了这个dockerfile示例,但是不确定如何运行它?

version: "3"
services:
 rabbitmq:
    image: "rabbitmq:3-management"
    ports:
      - "5672:5672"
      - "15672:15672"
     volumes:
      - "rabbitmq_data:/data"
     volumes:
      rabbitmq_data:

我让兔子在当地可以正常工作,但是每个人都告诉我码头工人是未来,以这个速度我不明白。

以上内容看起来像是运行Rabbitmq容器的有效方法吗?在哪里可以找到完整的可以理解的示例?

  1. 我需要一个docker文件还是我误解了吗?
  2. 如何指定端口?在上面的示例中,第一个数字5672:5672是什么,最后一个是什么?
  3. 如何确保再次运行容器时,例如在计算机重新启动后能得到相同的容器?

非常感谢

安德鲁

1 个答案:

答案 0 :(得分:8)

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-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。容器中收集的数据也将存储在主机中。因此,如果您删除容器并启动一个 new 容器,则数据仍然存在,因为它已存储在主机中。