当前位置: 首页 > 知识库问答 >
问题:

Dockerfile与docker run

赵刚豪
2023-03-14

与手动使用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)时,我收到“This site can't be react.192.168.99.100 refired to connect”。

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-compose up-d之后的dockerps结果

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

共有1个答案

封鸿雪
2023-03-14

经过进一步测试,我发现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文件构建容器: 然后在容器内部,创建一个< code >/opt/bundle/file . txt 并在其中放置一些文本。但是,在阅读了“我应该使用复制/添加还是卷包含我的代码”后,该文件并没有像我预期的那样出现在主机上的捆绑目录中。最后一段: 在某些情况下,您可能希望两者都使用。您可以使用COPY让图像包含代码,并在开发过程中使用组合文件中的卷来包含来自主机的代码。

  • 问题内容: docker RUN和CMD语句的shell形式和exec形式之间有什么区别? 例如: vs: eg2 : vs: 问题答案: Shell窗体和exec窗体之间有两个区别。根据文档,exec形式是首选形式。这是两个区别: exec形式被解析为JSON数组,这意味着您必须在单词而非单引号(’)周围使用双引号(“)。 与shell表单不同,exec表单不会调用命令shell。这意味着正常的

  • 问题内容: 我一直在阅读和学习有关Docker的知识,并试图正确选择要使用的Django设置。到目前为止,有: Docker Compose 或Dockerfile 我了解在中使用了,但是我不确定是否将所有内容放入一个大的Dockerfile中并用多个命令处理不同的映像是否是一个好习惯? 我想使用几个不同的图像,包括: 请提供关于使用 Docker 设置此类环境的最佳实践的建议。 如果有帮助,我在

  • Dockerfile市场主要是为了方便大家正确的填写Dockerfile而提供的一些例子,当然您也可以直接下载该市场里的已经制作好的相关Dockerfile文件放到您的项目里 创建Dockerfile 不多说了,直接看图吧...

  • Dockerfile best practices Writing production-worthy Dockerfiles is, unfortunately, not as simple as you would imagine. Most Docker images in the wild fail here, and even professionals often[1] get[2]

  • 我一直在阅读和学习Docker,并试图正确选择要使用的Django设置。到目前为止,存在以下两种情况之一: Docker撰写或Dockerfile 我知道Docker Compose中使用Dockerfiles,但我不确定将所有内容放在一个大Dockerfiles中,并使用多个来自不同图像的命令是否是一种好的做法? 我想使用几个不同的图像,包括: 请就使用Docker设置此类环境的最佳实践提供建议