如何使用docker compose运行同一服务的多个实例?
我想运行在某个端口上运行的docker image的3个实例。我希望所有3个实例的端口都向主机公开。我希望能够控制哪些主机端口映射到容器 首先,我尝试在docker-compose.yml中创建3个不同的服务。这是可行的,但并不可取 其次,我在docker-compose.yml中创建了一个服务 然后我试图通过环境变量控制暴露的端口。但是当我创建第二个容器时,docker会删除我创建的第一个容器 我无法使用如何使用docker compose运行同一服务的多个实例?,docker,docker-compose,Docker,Docker Compose,我想运行在某个端口上运行的docker image的3个实例。我希望所有3个实例的端口都向主机公开。我希望能够控制哪些主机端口映射到容器 首先,我尝试在docker-compose.yml中创建3个不同的服务。这是可行的,但并不可取 其次,我在docker-compose.yml中创建了一个服务 然后我试图通过环境变量控制暴露的端口。但是当我创建第二个容器时,docker会删除我创建的第一个容器 我无法使用scale选项,因为它将暴露的端口映射到主机上的随机端口 myservice: i
scale
选项,因为它将暴露的端口映射到主机上的随机端口
myservice:
image: myimage:latest
container_name: service-${PORT}
volumes:
- ${DIR}:/data
ports:
- "${PORT:-8011}:8011"
- "${ADMINPORT:-8012}:8012"
您可以将端口范围设置为与
compose
的scale
选项一起使用:
ports: - "8011-8013:8011"
启动它:
docker-compose up --scale myservice=3
然后容器将使用端口
8011
,8012
和8013
看起来你想扩展你的应用程序,对吗?Docker swarm或Kubernetes似乎更适合您的需要