Docker作为开发环境-多个容器还是具有多个配置的单个容器?

Docker作为开发环境-多个容器还是具有多个配置的单个容器?,docker,docker-compose,Docker,Docker Compose,我查看了有关这方面的问题和论坛,但我发现的都是关于生产使用的 我想用Docker Composer设置容器只是为了开发(所以我不必在每个系统上安装相同的完整堆栈) 假设我有一个带有php后端、html/js前端等的monorepo应用程序 nginx: image: nginx:alpine container_name: demo-nginx ports: - 80:80 - 8080:8080 - 8085:8085 volumes: - ..

我查看了有关这方面的问题和论坛,但我发现的都是关于生产使用的

我想用Docker Composer设置容器只是为了开发(所以我不必在每个系统上安装相同的完整堆栈)

假设我有一个带有php后端、html/js前端等的monorepo应用程序

nginx:
  image: nginx:alpine
  container_name: demo-nginx
  ports:
    - 80:80
    - 8080:8080
    - 8085:8085
  volumes:
    - ../:/var/www
    - ./nginx:/etc/nginx/conf.d
  networks:
    - demo-network
  depends_on:
    - php
现在,当我想向nginx添加另一个站点时,我只需要定义端口并使用nginx
server{}
配置创建
somesite.conf

但我想知道这是一种好的做法,还是更常见的做法是创建多个nginx容器?会慢一点吗?它有什么冒险吗

nginx-back:
  image: nginx:alpine
  container_name: backend-nginx
  ports:
    - 80:80
  volumes:
    - ../:/var/www
  networks:
    - demo-network
  depends_on:
    - php

nginx-front:
  image: nginx:alpine
  container_name: frontend-nginx
  ports:
    - 8085:80
  volumes:
    - ../:/var/www
  networks:
    - demo-network
这只是一个例子,可能会有更多的端点


其他可以在多个源上使用的容器也一样,比如Node。

我可能会使用单个Nginx容器,并在单个端口上使用基于路径的路由。这有一个特别的优点,即基于浏览器的应用程序可以使用仅路径的URL
/api/object/1
来引用系统的其他部分,而不知道从哪个主机名提供服务。