所以,这是问题所在,我 需要做 一些 开发 ,为此,我需要以下软件包:
一种选择是, 我获取一个Ubuntu映像 , 创建一个容器 并开始一个接一个地安装它们并完成,启动我的服务器,并公开端口。
但这也可以在虚拟框中轻松完成,并且不会使用Docker的功能。因此,我必须开始使用这些软件包构建自己的映像。现在,这是一个问题,如果我开始编写我的Dockerfile,并在其中放置用于下载Node
js(及其他)的命令,这将再次变得像虚拟化一样。
我需要的是,我 从Ubuntu的启动 和不断 增加 的 引用 的
MongoDB的,的NodeJS,RabbitMQ的,Nginx的和Redis的 内部 Dockerfile 终于露出各自携出。
这是我的查询:
提前致谢。
保持图像明亮。每个容器运行一项服务。在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
我这里有一个项目如下: 我现在在设计使用IoC容器,对src/usage 使用 上面的 src/services/ 下面的定义进行解耦。 我可以对src/services/目录下每个目录都创建一个IoC Container,然后也就是说我的项目中对不同的服务类型有不同的container。 然后在src/usage使用的时候,就需要导入多个container。 还是说只应该创建一个containe