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

Docker容器的粒度

庄萧迟
2023-03-14

设计应用程序基础结构时

例如,使用Nginx、PHP-FPM、Redis、MySQL和ElasticSearch的分布式PHP应用程序

服务容器:

  • Nginx App PHP-FPM(将完整应用程序作为“服务”容器)

工艺容器:

  • Nginx
  • 应用程序
  • PHP-FPM
  • Redis
  • MySQL

从我的角度来看,使用“服务”容器方法似乎更易于维护,因为为每个流程管理如此多的谨慎容器可能会变得很麻烦。

共有1个答案

董品
2023-03-14

容器都是关于隔离的(文件系统、CPU、内存的隔离)。
这还包括进程的隔离(每个容器一个)。

在出现故障的情况下,每个容器一个进程更容易调试(与连接到具有大量进程和不同日志运行的大型容器相反)<升级/回滚路径更容易(每个要更改的进程只停止/重新启动一个容器)。

此外,每当有多个进程运行时,必须使用专门处理这些进程如何停止的图像:请参阅“PID 1僵尸收割问题”。

 类似资料:
  • 1、启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 1.1 新建并启动 所需要的命令主要为 docker run。 例如,下面的命令输出一个 “Hello World”,之后终止容器。 $ sudo docker run ubuntu:14.0

  • 我有一个容器,我想停止,但当我做一个它挂起,永远不会停止它。 我试过正常的和

  • 设置docker容器(kafka,zookeeper)并试图从另一个容器(发布和)消费时,会收到以下错误:KafkaError{code=leader_not_available,val=5,str=“broker:Leader not available”}在发布或消费时没有额外的错误指示。在测试与的连接性时,我收到了预期的结果。 docker-compose.yml: Ubuntu@stage

  • 问题内容: 我有一个Wordpress / MySQL docker容器,用于开发主题和插件。我在localhost:8000上访问它。 它使用了Gulp构建过程,我正在尝试将browsersync添加到组合中。我很难让browsersync真正代理出容器。从Gulp输出中,我可以看到它正在生成更改,只是实际上并未在浏览器中进行任何更改。 这是我的docker-compose.yml,gulpfi

  • 我认为这是因为容器没有JAVA_HOME变量集。我执行了和尝试命令,但它没有显示java可执行文件。此外,java和javac命令不起作用。 有人知道我做错了什么吗?如有任何帮助,不胜感激。提前感谢!

  • 我的数据库连接是用下面的类处理的: 这是我的spring boot控制器 下面是我的dockerfile: 我读了这里和这里提到的解决方案。也阅读了一些教程,但我无法将这些解决方案中的任何一个适合我的代码。在我的代码中,我应该在哪里更改?