【发布时间】:2020-01-09 03:51:29
【问题描述】:
我想运行 3 个在某个端口上运行的 docker 映像实例。我想要暴露给主机的所有 3 个实例的端口。我希望能够控制哪些主机端口映射到容器。
首先我尝试在 docker-compose.yml 中创建 3 个不同的服务。这行得通,但并不可取。
其次,我在 docker-compose.yml 中创建一个服务 然后我尝试通过环境变量控制暴露的端口。但是当我创建第二个容器时,docker 会删除我创建的第一个容器。
我不能使用scale 选项,因为它将暴露的端口映射到主机上的随机端口。
myservice:
image: myimage:latest
container_name: service-${PORT}
volumes:
- ${DIR}:/data
ports:
- "${PORT:-8011}:8011"
- "${ADMINPORT:-8012}:8012"
【问题讨论】:
-
看起来您想扩展您的应用程序,对吗? Docker swarm 或 Kubernetes 似乎更适合您的需求。
-
我删除了Java标签,因为它与qestion无关
标签: docker docker-compose