Docker中的容器如何组成?
How to consist the containers in Docker?
现在我正在开发新的内容所以搭建服务器。
在我的服务器上,基本系统是 Cent OS(7),我安装了 Docker,提取了 cent os,并建立了 "WEB SERVER container" Django 与 uwsgi 和 nginx。
但是我想启动服务(带有 postgres 的数据库),最好的方法是什么?
在我现有的容器(带有网络服务器)上安装 postgres
只为数据库建立新的容器。
而且我想知道ose.
的每个优点和缺点
习惯使用两个单独的容器。此外,这更简单——如果容器中有两个或多个进程,则需要一个父进程来监视它们(通常人们使用进程管理器,如 supervisord)。只需一个过程,您将不需要这样做。
我这里所说的监控,主要是指当容器收到SIGSTOP信号时,你需要确保所有进程都正确关闭。如果你没有正确地做到这一点,你最终会遇到僵尸进程。如果您只有信号进程或使用进程管理器,则无需担心这一点。
此外,正如 Greg 指出的那样,拥有单独的容器允许您单独编排和安排容器,因此您可以 update/change/scale/restart 每个容器而不影响另一个容器。
如果你想在重启后将数据保留在数据库中,数据库不应该在容器中,而应该在主机上。我会假设你也想要容器中的数据库。
设置第二个容器需要更多工作。您应该找到一种容器了解彼此地址的方法。每次启动容器时地址都会改变,所以需要在宿主机上做一些脚本。主机必须找出 ip 地址并通知容器。
容器可能想用另一个容器的地址更新 /etc/hosts 文件。当您想模拟不同的服务器并执行弹性测试时,这是一个不错的解决方案。你需要一些 bash 知识才能很好地 运行。
在几乎所有其他情况下,选择一个容器。将所有内容安装在一个容器中对于设置和之后的开发来说更容易。设置 Docker 只是您要进行实际工作的环境。工具应该帮助您完成实际工作,而不是占用您所有的时间和精力。
现在我正在开发新的内容所以搭建服务器。
在我的服务器上,基本系统是 Cent OS(7),我安装了 Docker,提取了 cent os,并建立了 "WEB SERVER container" Django 与 uwsgi 和 nginx。
但是我想启动服务(带有 postgres 的数据库),最好的方法是什么?
在我现有的容器(带有网络服务器)上安装 postgres
只为数据库建立新的容器。
而且我想知道ose.
的每个优点和缺点习惯使用两个单独的容器。此外,这更简单——如果容器中有两个或多个进程,则需要一个父进程来监视它们(通常人们使用进程管理器,如 supervisord)。只需一个过程,您将不需要这样做。
我这里所说的监控,主要是指当容器收到SIGSTOP信号时,你需要确保所有进程都正确关闭。如果你没有正确地做到这一点,你最终会遇到僵尸进程。如果您只有信号进程或使用进程管理器,则无需担心这一点。
此外,正如 Greg 指出的那样,拥有单独的容器允许您单独编排和安排容器,因此您可以 update/change/scale/restart 每个容器而不影响另一个容器。
如果你想在重启后将数据保留在数据库中,数据库不应该在容器中,而应该在主机上。我会假设你也想要容器中的数据库。
设置第二个容器需要更多工作。您应该找到一种容器了解彼此地址的方法。每次启动容器时地址都会改变,所以需要在宿主机上做一些脚本。主机必须找出 ip 地址并通知容器。
容器可能想用另一个容器的地址更新 /etc/hosts 文件。当您想模拟不同的服务器并执行弹性测试时,这是一个不错的解决方案。你需要一些 bash 知识才能很好地 运行。
在几乎所有其他情况下,选择一个容器。将所有内容安装在一个容器中对于设置和之后的开发来说更容易。设置 Docker 只是您要进行实际工作的环境。工具应该帮助您完成实际工作,而不是占用您所有的时间和精力。