如何防止两个单独的 docker-compose 之间发生冲突
How to prevent conflict between two separate docker-compose
我在两个单独的文件夹中有两个单独的项目。
当我 运行 其中之一时,第二个不能 运行 因为端口之间存在冲突。
问题出在 ElasticSearch 图像上。
以下是两个 docker-compose 文件:
# /home/foder_1/
version: '3'
services:
elasticsearch_ci:
image: elasticsearch:7.14.2
restart: always
expose:
- 9200
environment:
- discovery.type=single-node
- xpack.security.enabled=false
env_file:
- ./envs/ci.env
container_name: elasticsearch_ci_pipeline
第二个:
# /home/folder_2/
version: '3'
services:
elasticsearch:
image: elasticsearch:7.14.2
expose:
- 9200
volumes:
- elastic_search_data_staging:/var/lib/elastic_search/data/
environment:
- discovery.type=single-node
- xpack.security.enabled=false
当我 运行 docker ps
时,我看到创建了第二个 ElasticSearch 容器,但它没有显示其端口。
我该如何解决这个问题?
更新:
问题是在这种情况下,我的网络应用程序(django-base)无法连接到第二个弹性搜索实例。
此外,当我在第二个 docker-compose 中为 ES 更改端口号时(例如添加 9500 作为 Expose),ES 的端口号再次是默认端口号(9200、9300)加上我的新端口 (9500) 和我的 Web 应用程序无法连接到其中的 none。
终于找到问题所在了。
我的服务器只有 4 GB 的 RAM,当一个 elasticsearch
正在 运行ning 时,elasticsearch 的其他实例无法启动,因为第一个实例消耗了大部分 RAM。
如果您想 运行 两个单独的 elasticsearch 实例,您应该考虑每个实例至少 6 GB 的 RAM。
我在两个单独的文件夹中有两个单独的项目。 当我 运行 其中之一时,第二个不能 运行 因为端口之间存在冲突。
问题出在 ElasticSearch 图像上。 以下是两个 docker-compose 文件:
# /home/foder_1/
version: '3'
services:
elasticsearch_ci:
image: elasticsearch:7.14.2
restart: always
expose:
- 9200
environment:
- discovery.type=single-node
- xpack.security.enabled=false
env_file:
- ./envs/ci.env
container_name: elasticsearch_ci_pipeline
第二个:
# /home/folder_2/
version: '3'
services:
elasticsearch:
image: elasticsearch:7.14.2
expose:
- 9200
volumes:
- elastic_search_data_staging:/var/lib/elastic_search/data/
environment:
- discovery.type=single-node
- xpack.security.enabled=false
当我 运行 docker ps
时,我看到创建了第二个 ElasticSearch 容器,但它没有显示其端口。
我该如何解决这个问题?
更新:
问题是在这种情况下,我的网络应用程序(django-base)无法连接到第二个弹性搜索实例。
此外,当我在第二个 docker-compose 中为 ES 更改端口号时(例如添加 9500 作为 Expose),ES 的端口号再次是默认端口号(9200、9300)加上我的新端口 (9500) 和我的 Web 应用程序无法连接到其中的 none。
终于找到问题所在了。
我的服务器只有 4 GB 的 RAM,当一个 elasticsearch
正在 运行ning 时,elasticsearch 的其他实例无法启动,因为第一个实例消耗了大部分 RAM。
如果您想 运行 两个单独的 elasticsearch 实例,您应该考虑每个实例至少 6 GB 的 RAM。