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

And*_*rew 1 rabbitmq docker

嗨,我发现如何创建一个运行rabbitmq容器的docker文件非常混乱,我可以在其中公开端口,以便我可以通过localhost和端口号导航到管理控制台.

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

version: "3"
services:
 rabbitmq:
    image: "rabbitmq:3-management"
    ports:
      - "5672:5672"
      - "15672:15672"
     volumes:
      - "rabbitmq_data:/data"
     volumes:
      rabbitmq_data:
Run Code Online (Sandbox Code Playgroud)

我有兔子在当地工作很好,但每个人都告诉我,码头工人是未来,按照这个速度,我不明白.

以上看起来像是运行rabbitmq容器的有效方法吗?我在哪里可以找到一个完全可以理解的例子?

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

非常感谢

安德鲁

Bru*_*her 12

泊坞窗,撰写

你发布的不是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:
Run Code Online (Sandbox Code Playgroud)

2)下载docker-compose(https://docs.docker.com/compose/install/)

3)(重新)启动Docker.

4)在控制台上运行:

cd <location of docker-compose.yml>
docker-compose up
Run Code Online (Sandbox Code Playgroud)

我需要一个docker文件还是我误解了它?

你有一个docker-compose文件.在rabbitmq:3-management使用RabbitMQ的Dockerfile(你建的码头工人图像并不需要,图像将会被下载你第一次运行docker-compose up.

我该如何指定端口?在上面的例子中,第一个数字是5672:5672,最后一个是什么?

"5672:5672" 指定队列的端口.

"15672:15672" 指定管理插件的端口.

左侧的数字是您可以从容器外部访问的端口.因此,如果您想使用不同的端口,请更改左侧的端口.正确的是内部定义的.

这意味着您可以在http:\\localhost:15672(或更一般地http:\\<host-ip>:<port exposed linked to 15672>)之后访问管理插件.

您可以在Docker Hub上看到有关RabbitMQ Image的更多信息.

我怎么能确定当我重新运行容器时,说机器重新启动后我得到了相同的容器?

我假设您想要相同的容器,因为您想要保留数据.您可以使用docker-compose stop重启机器,然后运行docker-compose start.然后使用相同的容器.但是,如果容器被删除,则会丢失其中的数据.

这就是你使用Volumes的原因.容器中收集的数据也会存储在主机中.因此,如果您删除容器并启动一个容器,数据仍然存在,因为它存储在主机中.

  • 哇,这在所有级别上都是一个很好的答案,非常感谢,非常有帮助。 (2认同)
  • 很高兴有帮助 :-) (2认同)