我正在研究一个微服务架构,其中我们有许多不同的项目,并且所有项目都连接到同一个redis实例。我想将这个体系结构移到Docker上以在开发环境中运行。因为所有的项目都有单独的存储库,所以我不能只使用一个
docker-compose.yml
文件来连接它们。在做了一些研究之后,我发现我可以创建一个共享的外部网络来连接所有的项目,因此我开始创建一个网络:
docker network create common_network
我为MongoDB、Redis、RabbitMQ(所有项目使用的服务)等公共服务创建了一个单独的项目。下面是这个项目的Docker撰写文件示例:
version: '3'
services:
redis:
image: redis:latest
container_name: test_project_redis
ports:
- "6379:6379"
networks:
- common_network
networks:
common_network:
external: true
现在当我跑步的时候
docker-compose build
和
docker-compose up -d
它的工作方式很迷人,我可以使用127.0.0.1:6379从本地计算机连接到Redis。但是当我尝试从另一个容器连接到这个redis容器时有一个问题。
下面是另一个运行node.js的项目的docker-compose.yml示例(我不放置dockerfile,因为它与此问题无关)
version: '3'
services:
api:
build: .
con