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

一个容器中有多个图像

郎增
2023-03-14
问题内容

所以,这是问题所在,我 需要做 一些 开发 ,为此,我需要以下软件包:

  1. MongoDb
  2. 节点
  3. Nginx的
  4. 兔子Mq
  5. 雷迪斯

一种选择是, 我获取一个Ubuntu映像创建一个容器 并开始一个接一个地安装它们并完成,启动我的服务器,并公开端口。

但这也可以在虚拟框中轻松完成,并且不会使用Docker的功能。因此,我必须开始使用这些软件包构建自己的映像。现在,这是一个问题,如果我开始编写我的Dockerfile,并在其中放置用于下载Node
js(及其他)的命令,这将再次变得像虚拟化一样。

我需要的是,我 从Ubuntu的启动 和不断 增加引用
MongoDB的,的NodeJS,RabbitMQ的,Nginx的和Redis的 内部 Dockerfile 终于露出各自携出。

这是我的查询:

  1. 这可能吗?从一个基本映像开始时,就像在Dockerfile中添加其他映像的引用一样。
  2. 如果是,那怎么办?
  3. 这也是正确的做法吗?
  4. 如何在Docker中做这些事情?

提前致谢。


问题答案:

保持图像明亮。每个容器运行一项服务。在docker
hub上使用mongodb,nodejs,rabbitmq,nginx等官方镜像。如有需要,请对其进行扩展。如果要在胖容器中运行所有内容,则最好使用VM。

您当然可以在开发设置中做疯狂的事情,但是为什么要花时间在生产环境中设置
价值的东西呢?如果您需要扩展其中一项服务怎么办?如何在每个服务上设置内存和cpu约束?.. 而这样的例子不胜枚举。

不要制造整体容器。

一个好的开始是使用docker-compose配置一组可以互相通信的服务。您可以制作文件的prod和dev版本docker-compose.yml

进入正确的心态

在理想的情况下,您将在生产环境中的集群环境中运行容器,以便能够扩展系统并具有并发性,但是根据您所运行的内容,这可能会显得过高。最好将其放在脑后,因为它可以帮助您做出正确的决定。

如果您想成为一名纯粹主义者,请考虑以下几点:

  • 您如何在多个主机之间拥有持久的卷存储?
  • 反向代理/负载均衡器可能应该是使用内部网络与容器进行通信的系统的入口点。
  • 我的服务是否甚至可以在群集环境中运行(容器的多个实例)

您当然可以在开发人员中做一些脏事,例如在主机卷中映射以进行持久存储(许多在产品中使用docker Standalone的人也可以这样做)。

理想情况下,我们应该将docker in dev和docker I
prod分开。Docker是开发期间的绝佳工具,因为您可以启动Redis,memcached,postgres,mongodb,rabbitmq,node或其他任何东西,并在几分钟之内运行,从而与团队其他成员共享设置。产品中的Docker可能是完全不同的野兽。

我还要补充一点,我通常反对狂热主义,即产品中的“一切都应在docker中运行”。在有意义的情况下在docker中运行服务。大型公司制作自己的基本映像也很常见。这可能需要很多工作,并且需要进行维护以跟上安全修复程序等的工作。从docker启动时,这不一定是您要做的第一件事。



 类似资料:
  • > 我正试图弄清楚Kubernetes中的网络,尤其是多集装箱吊舱的处理。在我的简单场景中,我总共有3个豆荚。其中一个有两个容器,另一个只有一个容器,它希望与多容器吊舱中的特定容器通信。我想弄清楚kubernetes如何处理此类容器之间的通信。 为此,我在一个“sidecar体系结构”中有一个简单的多容器吊舱,YAML文件如下所示: > 我想用这个YAML文件实现的是,在pod“nginx”中,有

  • 我想在Docker容器中启动两个不同的服务,并在其中一个退出后立即退出容器。我查看了supervisor,但找不到如何让它在一个托管应用程序退出后立即退出。它试图重启它们多达三次,就像标准设置一样,然后什么也不做。主管是否能够做到这一点,或者是否有其他工具可以做到这一点?如果还有一种方法可以让两个托管程序都写入到stdout,并标记它们的应用程序名,则会有好处,例如:

  • 问题内容: 与独立容器相比,在吊舱中拥有多个容器有什么好处? 问题答案: 如果您在同一吊舱中有多个容器,它们可以彼此通话并可以共享已安装的卷。 如果每个容器有多个吊舱,则可以重新启动一个而不用重新启动另一个。假设它们由部署控制,则可以添加其中一个的其他副本,而不必扩展其他副本。如果其中一个的版本或其他特征发生更改,则不必强制重新启动另一个。您需要设置一种服务,以便彼此通信,并且它们无法通过文件系统

  • 问题内容: 我是python的新手,正在尝试使用matplotlib在同一图中绘制多条线。我的Y轴的值存储在字典中,并在下面的代码中在X轴中进行相应的值 我的代码是这样的: 但是我得到的是一个单独的图,一个图一个图。有人可以帮助我弄清楚我们的代码有什么问题吗?为什么不能生成多条线图?非常感谢! 问题答案: 这很简单: 您可以随意添加多次。至于,您需要首先指定颜色。所以对于蓝色,它是。对于正常的线是

  • 我正在尝试以下操作: 在一个带有暴露端口的容器中旋转MySQL 5.5,例如4200。 在一个带有暴露端口的容器中旋转MySQL 5.7,例如4300。 旋转golang容器以运行我的应用程序。 我的想法是我需要我的测试在不同的数据库版本上运行。 为此,我需要能够与golang容器中的每个sql容器进行对话。 我试过的: 方法1-使用--link: GO LANG应用程序容器 方法2-使用--ne

  • 我用缩略图创建了一个小图像库。每次我将鼠标悬停在给定的颜色上,主窗口中的图像就会变成具有这种颜色的图像(实际上,我希望彩色图像被替换为我放在那里的图像的不同颜色变化)。 我想做的是在我的页面上放不止一个这样的图库。问题是,如果我添加另一个库,所有内容都会重复。我希望避免为每个库创建css和jquery代码。有什么办法可以做到这一点吗? 此外,最初我希望大图像仅在单击彩色缩略图时显示,而不是悬停在上