当前位置: 首页 > 面试题库 >

Docker Compose与Dockerfile-哪个更好?

法风畔
2023-03-14
问题内容

我一直在阅读和学习有关Docker的知识,并试图正确选择要使用的Django设置。到目前为止,有:

Docker
Compose
或Dockerfile

我了解在Dockerfiles中使用了Docker Compose,但是我不确定是否将所有内容放入一个大的Dockerfile中并用多个FROM命令处理不同的映像是否是一个好习惯?

我想使用几个不同的图像,包括:

uwsgi
nginx
postgres
redis
rabbitmq
celery with cron

请提供关于使用 Docker 设置此类环境的最佳实践的建议。

如果有帮助,我在Mac上,请使用boot2docker。

我遇到的一些问题:

  1. Docker Compose与Python3不兼容
  2. 我想对我的项目进行html" target="_blank">容器化,所以如果一个大的Dockerfile不理想,那么我觉得我需要使用Docker Compose分解它
  3. 我可以使项目Py2和Py3兼容,所以倾向于django-compose

问题答案:

答案都不是。

如果将build命令添加到项目的,则Docker Compose(在本文中称为compose)将使用Dockerfile docker- compose.yml

您的Docker工作流程应该是为要创建的Dockerfile每个映像构建合适的映像,然后使用compose通过build命令组装映像。

您可以使用等等的build /path/to/dockerfiles/blah位置来指定各个Dockerfile的路径。/path/to/dockerfiles/blah``Dockerfile



 类似资料:
  • 问题内容: 执行多个: 加入他们: 每个层都创建一个图层,因此我一直以为图层越少越好,因此越好。 当a 删除前一个(即)添加的内容时,这显然是正确的,但是在每个都添加了内容的情况下,我们需要考虑以下几点: 层应该只是在前一层之上添加差异,因此如果后一层没有删除在前一层中添加的内容,那么这两种方法之间就没有太多的磁盘空间节省优势… 层是从Docker Hub并行拉出的,因此,尽管可能稍大一些,但理论

  • java.util.Objects类使用了许多新方法进行了扩展 对象#RequireNonNullElse 分别 中的对象#RequireNonNullElseget()。 如果第一个参数为非空,则返回第一个参数,否则返回非空的第二个参数或supplier.get()的非空值 但新功能与类中已存在的可选#orelse和可选#orelseget重叠 中的新方法与相应的方法之间的唯一区别是,suppl

  • 问题内容: 我知道它们本质上是同一件事,但是就样式而言,哪个是创建空列表或字典的更好(更Pythonic的)? 问题答案: 在速度方面,空列表/字典没有竞争: 对于非空: 另外,使用方括号表示法还可以使您使用列表和字典理解,这可能就足够了。

  • 问题内容: 我已经阅读了很多有关每种方法的优缺点的信息,并且我知道委托通常是针对一个侦听器的,而通知则针对许多侦听器。问题在于性能。 我正在通过通知将麦克风的音频信号发送到另一个班级。我知道在这里我应该使用委托,但我的问题是:委托会更快吗?因为我可以看到我有一些帧速率问题(已减少),并且我想知道原因是否可能是使用通知 而不是 委托,还是没有关系? 问题答案: 代表的开销较少,因此执行速度更快。 但

  • 问题内容: 我仔细研究了它,它看起来非常高效,尤其是对于值小于64的枚举。 基本上,所有集合共享所有可能的枚举值的单个数组,而唯一的另一条信息是位掩码,如果设置为一,则将其设置为。 另一方面,Enum.values()似乎有点黑魔法。此外,它返回一个数组,而不是一个集合,因此在许多情况下,必须用Arrays.asList()装饰它,以便在任何需要集合的地方使用。 那么,应该更可取吗? 更具体地说,

  • 我想知道,以下两种方法中哪一种是声明字典的最佳实践,为什么?