一台服务器上运行着14 个 PHP 容器php_1, ..., php_14
和 14 个 NGINX 容器nginx_1, ..., nginx_14
。PHP 容器php_i
仅连接到nginx_i
,所有 NGINX 容器都通过共享的外部网络连接。因此php_i
可以看到nginx_i
,也nginx_i
可以看到每一个nginx_j
。
系统添加了一个新需求,我们需要为所有项目提供一个全局的 Elasticsearch,允许所有 PHP 项目在这个单个 Elasticsearch 实例上写入,该实例将通过 Docker 安装。
为了完成这项任务,我想到以下方法,但我不确定哪一种是最好的方法。
- 安装一个独立的 Elasticsearch 实例并
9200:9200
在主机上发布其端口(例如),然后在 PHP 配置中设置主机的 IP(例如)172.17.0.1
和端口9200
- 我可以创建一个专用的外部网络用于将 PHP 连接到 Elasticsearch,并将该专用网络包含在
networks
docker-compose 文件的指令中。
我想知道哪种方法是最佳实践。