就能够编辑 Apache 配置文件和类似内容而言,Docker 是如何工作的?

Jas*_*vis 5 docker

我有兴趣了解在我的服务器上为我的 Web 客户端使用 Docker 的完整概念。

理想情况下,我希望使用 apache、PHP、MySQL、电子邮件服务器、DNS 服务器、redis、memcached、imagemagick 等创建一个 docker,并拥有它,我可以简单地启动到客户端的新服务器并在几分钟内启动。

我在这里看到了这个 Apcache Docker https://hub.docker.com/r/eboraas/apache-php/

它说:

这是一个包含 SSL 和 PHP5 支持的 Apache 映像。为了有效地使用此映像,您需要安装:

/var/www 用于您的站点内容(例如使用“-v /home/jdoe/mysite/:/var/www/”)/var/log/apache2,可选,如果您想将日志文件明显地存储在容器之外 /etc /ssl,可选,如果您希望使用带有真实密钥的 SSL

更具体地说:

为您的网站内容挂载 /var/www

如果我理解正确,这是允许网站的外部文件夹/文件存在于 Docker 映像之外的服务器上,以便 Docker 基本上只是处理实际的服务器软件?

还有一些问题:

诸如用于添加域的 Apache Virtualhost 记录之类的东西是否存在于 docker 映像内部或其外部的服务器上并且是可编辑的?

EEA*_*EAA 3

Docker 是如何工作的,能够编辑 Apache 配置文件和类似的东西?

但几乎你希望它能工作。:)

如果我理解正确的话,这是允许网站的外部文件夹/文件存在于 Docker 映像之外的服务器上,这样 Docker 基本上只是用来处理实际的服务器软件?

对,那是正确的。

用于添加域的 Apache Virtualhost 记录之类的东西是否存在于 docker 映像内部或外部的服务器上并且可以编辑?

如果您希望/需要它们存在于容器之外,那么就以这种方式构建它。

正如您无疑已经注意到的那样,我对您问题的回答相当模糊。这是有充分理由的。仅仅因为您使用 docker 并不意味着只有一种好的方法可以做事。您的用例将在很大程度上决定您想要如何使用 docker。

在我的环境中,我们选择将所有配置和所有应用程序状态存储在容器外部。对于配置,这意味着我们在主机上维护一个“etc”目录,其中包含该主机上运行的每种类型容器的所有配置。同样,我们将状态(数据库文件等)存储在主机的文件系统上,而不是使用数据卷。配置目录和数据存储位置都使用运行时标志安装到正在运行的容器中-v。这种架构对我们来说非常有效,但它可能不是您的组织所需要的。

有很多有效的用例可以使用完全独立的 Docker 镜像(包括配置)以及使用数据卷来获取应用程序状态。您只需要列举您的要求,然后制定出满足您要求的设计。

Docker 是一个供你使用的工具。由用户决定如何使用它。