【问题标题】:Dockerfile vs docker runDockerfile 与 docker 运行
【发布时间】:2016-06-02 06:36:09
【问题描述】:

与手动使用 docker run 相比,使用 Dockerfile 在 Docker 中发布的端口存在问题。使用以下命令,Docker 容器成功启动,当我在浏览器中使用http://192.168.99.100:8080 访问主机 IP 地址 (192.168.99.100) 时,RabbitMQ Web 管理仪表板会加载。

docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3.5.6-management

此时,我运行以下命令从 Dockerfile 中释放我想要使用的端口:

docker stop some-rabbit

当我运行以下 docker-compose 命令时,一旦我访问上述相同的 URL (http://192.168.99.100:8080),我就会收到“无法访问此站点 192.168.99.100 拒绝连接。”

docker-compose build
docker-compose up -d

这是我正在使用的 Dockerfile:

version: '2'
services:
    rabbitmq:
        container_name: rabbit
        hostname: rabbit
        ports:
            - "8080:15762"
        image: rabbitmq:3.5.6-management

下面是docker psdocker run之后的结果

6c5a97bd51bc rabbitmq:3.5.6-management "/docker-entrypoint.s" 16 seconds ago Up 15 seconds 4369/tcp, 5671-5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:8080->15672/tcp some-rabbit

下面是docker psdocker-compose up -d之后的结果

99987aeb5cbf rabbitmq:3.5.6-management "/docker-entrypoint.s" 13 seconds ago Up 11 seconds 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp, 0.0.0.0:8080->15762/tcp rabbitmq

【问题讨论】:

  • 也许你应该在你停止它之后 rm 容器。在 docker stop 后尝试 docker rm some-rabbit。然后尝试 docker-compose up -d。
  • 你为什么要docker-compose build?还有docker-compose psdocker-compose up -d之后的结果是什么。
  • @kyur,我在 docker stop 后也使用了 docker rm some-rabbit 无济于事。
  • @JHarris 我已将docker ps 的结果添加到我的问题底部

标签: docker rabbitmq dockerfile


【解决方案1】:

经过进一步测试,我发现 RabbitMQ 使用的所有端口都必须在 Dockerfile 中显式发布。

version: '2'
services:
    rabbitmq:
        container_name: rabbitmq
        hostname: rabbitmq
        ports:
            - "4369:4369"
            - "5672:5672"
            - "15672:15672"
            - "25672:25672"
        image: rabbitmq:3.5.5-management

【讨论】:

  • 感谢您回来回答您自己的问题
  • 这看起来像 docker-compose.yml 而不是 Dockerfile
猜你喜欢
  • 2017-03-12
  • 1970-01-01
  • 1970-01-01
  • 2021-05-02
  • 2017-11-12
  • 1970-01-01
  • 2022-11-23
  • 2022-12-12
  • 2021-08-19
相关资源
最近更新 更多