与手动使用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 Ps
在Docker 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
经过进一步测试,我发现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设置此类环境的最佳实践提供建议