如何用docker compose实现微服务体系结构?
我正在开发一个web应用程序,它只需要很少的微服务,比如URL、邮件、分析等等。。。这些服务中的每一个都实现为RESTAPI,因此它们可以相互通信。这些服务中的每一个都有一个docker-compose.yml文件,并使用nginx、php、mysql等容器。我希望这些服务可以作为一个单独的系统工作。我不想向docker网络之外的任何人公开这些RESTAPI 我的问题是如何组合来自每个服务的多个docker-compose.yml文件,以便它们一起工作?或者我应该使用一个大的docker-compose.yml文件来定义一个网络下的所有服务?或者我应该将我的每个服务只基于一个容器(ubuntu作为基础,通过Dockerfile安装php、mysql、nginx),然后通过docker-compose.yml在共享网络上运行它们?还是我误解了Docker实现微服务 如何将每个服务中的多个如何用docker compose实现微服务体系结构?,docker,architecture,docker-compose,containers,microservices,Docker,Architecture,Docker Compose,Containers,Microservices,我正在开发一个web应用程序,它只需要很少的微服务,比如URL、邮件、分析等等。。。这些服务中的每一个都实现为RESTAPI,因此它们可以相互通信。这些服务中的每一个都有一个docker-compose.yml文件,并使用nginx、php、mysql等容器。我希望这些服务可以作为一个单独的系统工作。我不想向docker网络之外的任何人公开这些RESTAPI 我的问题是如何组合来自每个服务的多个docker-compose.yml文件,以便它们一起工作?或者我应该使用一个大的docker-com
docker compose.yml
文件组合在一起工作
如果选择此路径,请确保容器连接到相同的网络。您可以在此处找到有关此案例的信息:
或者我应该使用一个大的docker compose.yml
文件来定义一个网络下的所有服务吗
这再一次由你来决定这是否应该是你的方法。在这种情况下,您是正确的,所有容器都可以连接到将要创建的默认网络。来自相同的文档:
注意:应用程序的网络名称基于“项目名称”,该名称基于其所在目录的名称。您可以使用--project name
标志或COMPOSE\u project\u name
环境变量覆盖项目名称
或者我应该只将我的每个服务建立在一个容器上(以ubuntu为基础,通过Dockerfile安装php、mysql、nginx)
我不太清楚,你在这里到底是什么意思
- 如果您谈论将所有这些安装到一个容器中,请不要这样做。这样,您就可以回到“整体式”方法
- 如果你说从“ubuntu”开始,然后继续为php、mysql、nginx等构建单独的容器,你就可以做到。但是我建议你更好地使用官方提供的图片