使用相同代码部署多个容器(Docker)

使用相同代码部署多个容器(Docker),docker,docker-compose,docker-swarm,Docker,Docker Compose,Docker Swarm,我有一个自定义的构建映像(Python+项目),它运行良好,我只想使用docker compose部署多个容器,只有环境变量会改变,rest是一样的,可以从docker-compose.yml中的一个服务完成吗 version: '3' services: logsService: image: logs:latest # logs image is already built and working fine env_file: - /home/control

我有一个自定义的构建映像(Python+项目),它运行良好,我只想使用docker compose部署多个容器,只有环境变量会改变,rest是一样的,可以从docker-compose.yml中的一个服务完成吗

version: '3'

services:
  logsService:
    image: logs:latest # logs image is already built and working fine
    env_file:
      - /home/controller/test/.env # File contains url, api_key, api_secret
docker-compose.yml

version: '3'

services:
  logsService:
    image: logs:latest # logs image is already built and working fine
    env_file:
      - /home/controller/test/.env # File contains url, api_key, api_secret
通过使用docker compose up,我可以提供一个容器,但我想提供4个具有相同代码但不同环境变量(即url、api_密钥、api_密钥)的容器,任何实现这一点的想法都将受到欢迎


注意:我是docker新手,如果这是一个愚蠢的问题,请原谅。

您可以使用docker compose命令执行此操作

docker-compose --scale --name="numberofcontainers" 
因此,如果我想启动我的“webserver”容器3次,它将是

docker-compse --scale --webserver=3

正如您所说的,您是新手,我建议您也考虑一下负载平衡器。或者您的其他容器将是usless

因此,可能类似于以下内容:

版本:“3”
服务:
日志服务:
图片:日志:最新
环境文件:
-/home/controller/test/${ENV:-}.ENV
ENV=prod docker compose——项目名称prod up


假设您的生产配置位于“prod.env”中

感谢您的支持,可以对env_文件进行一些更改吗?这样我就有了3个包含相同代码和不同env变量的容器。您需要在某个地方定义不同的env_文件,但简短的回答并不容易。最好为您的环境设置3个不同的.yaml文件。“这也会使跟踪东西变得更容易。”Sokay说,“我会试试的。谢谢你的帮助,我也会试试。”