代码之家  ›  专栏  ›  技术社区  ›  Andrew

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

  •  1
  • Andrew  · 技术社区  · 6 年前

    嗨,我发现如何创建一个docker文件来运行rabbitmq容器非常混乱,在这里我可以公开端口,以便通过本地主机和端口号导航到管理控制台。

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

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

    我让兔子在当地工作很好,但每个人都告诉我docker是未来,以这种速度我不明白。

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

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

    非常感谢

    安得烈

    1 回复  |  直到 6 年前
        1
  •  12
  •   Bruno Lubascher    6 年前

    Docker合成

    你发布的不是 停靠文件 . 它是一个 docker合成 文件。

    要运行它,你需要

    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-compose up .

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

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

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

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

    这意味着您可以在 http:\\localhost:15672 (或者更笼统地说 http:\\<host-ip>:<port exposed linked to 15672> ).

    您可以在 Docker Hub .

    当我重新运行容器时,比如在机器重新启动后,我如何确保得到相同的容器?

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

    所以你才用 Volumes . 容器中收集的数据也存储在主机中。所以,如果你移除容器并启动 新的 第一,数据仍然存在,因为它存储在主机中。