在 Docker 容器内运行多个 Nginx 和 MySQL 实例

在 Docker 容器内运行多个 Nginx 和 MySQL 实例

有人能告诉我我是否正确使用了 Docker 的工作流程吗?

在阅读了有关 Docker 的介绍并看了一些简短的教程后,我发现你可以在其容器内隔离服务和应用程序。最终,我很想用 Docker 取代虚拟化,但也许我有点太过了。

我使用 Laravel 进行应用程序开发,并在 Ubuntu 上使用 Nginx 实现。我想设置一个大型 VPS 并在 4 或 5 个应用程序之间共享其资源。这样我就可以保留不同版本的 PHP 和依赖项,还可以隔离 Web 服务器和数据库 (MySQL)。这样做的目的是只共享 Linux 内核,并将与这些应用程序相关的所有内容保留在各自的容器中。

需要端口的服务(例如 Nginx/MySQL)是否需要配置为使用非默认端口号以避免冲突?也许我没有完全理解 Docker 的预期用途,但我认为您可以选择在容器外安装 Web 服务器并将其与所有相关项目共享,或者安装多个 Web 服务器 - 每个容器一个并单独调整。对吗?

答案1

使用前端代理,如 nginx(用于相对静态的后端)或 hipache(用于快速变化的后端,例如,如果您打算每小时左右更换一次容器,并且不想更改 nginx 配置)。前端代理将侦听端口 80 和 443,并将请求重定向到正确的后端。我以这种方式在单个 IP 后面运行了 10 个左右的网站。

相关内容