docker - 如果服务已经在运行,我如何指示 docker-compose 不启动它?
问题描述
我有两个独立的服务,位于不同的目录中,为同一个 docker 网络配置。
Service PUB 是一个 RabbitMQ 发布者。它的 docker-compose 文件启动服务 PUB 和 RabbitMQ。
服务 WRK 是一个 RabbitMQ 工作者。它的 docker-compose 文件启动服务 WRK 和 RabbitMQ。
docker-compose up -d PUB
将启动 PUB 和 RabbitMQ,但随后运行docker-compose up -d WKR
将失败,因为已经分配了 RabbitMQ 端口。Bind for 0.0.0.0:15672 failed: port is already allocated
但是,docker-compose up -d WRK
如果我还没有启动 PUB,则同时启动 WRK 和 RabbitMQ。
如何配置 docker-compose.yml 文件,以便如果 RabbitMQ 已经在运行,它不会尝试启动 RabbitMQ 而只是连接到现有实例?
用于服务 PUB 的 docker-compose.yml:
services:
PUB:
image: pub-image
networks:
- myNet
environment:
RMQ_URI: amqp://guest@rabbitmq:5672//
ports:
- 127.0.0.1:5000:5000/tcp
links:
- rabbitmq:rabbitmq
depends_on:
- rabbitmq
rabbitmq:
image: rabbitmq:3.8.14-management
networks:
- myNet
ports:
- 5672:5672
- 15672:15672
networks:
myNet:
name: myNet
driver: bridge
用于服务 WRK 的 docker-compose.yml:
services:
WRK:
image: wrk-image
networks:
- myNet
environment:
RMQ_URI: amqp://guest@rabbitmq:5672//
links:
- rabbitmq:rabbitmq
depends_on:
- rabbitmq
rabbitmq:
image: rabbitmq:3.8.14-management
networks:
- myNet
ports:
- 5672:5672
- 15672:15672
networks:
myNet:
name: myNet
driver: bridge
解决方案
因为您没有在这些撰写文件中使用卷,因此可以合并它们:
services:
WRK:
image: wrk-image
networks:
- myNet
environment:
RMQ_URI: amqp://guest@rabbitmq:5672//
links:
- rabbitmq:rabbitmq
depends_on:
- rabbitmq
PUB:
image: pub-image
networks:
- myNet
environment:
RMQ_URI: amqp://guest@rabbitmq:5672//
ports:
- 127.0.0.1:5000:5000/tcp
links:
- rabbitmq:rabbitmq
depends_on:
- rabbitmq
rabbitmq:
image: rabbitmq:3.8.14-management
networks:
- myNet
ports:
- 5672:5672
- 15672:15672
networks:
myNet:
name: myNet
driver: bridge
推荐阅读
- python - Python Calculator (time) 似乎给出了不正确的答案
- r - 如何在 plot_ly 饼图中删除/更改值中的分隔符?
- c# - 如何使用不同的方法将类中的变量中的数字减少到 0
- vue.js - Vuejs:如何仅从 vuex 存储对象提交特定的表单属性
- r - 尚不支持 dplyr 长向量
- haskell - 在haskell上递归的连续对
- php - 根据字母的值找到字符串中得分最高的单词?
- linq - 什么是 F# 的 Seq.cache 的 LINQ to Objects 等效项?
- ios - MetricKit MXDiagnostic 符号化
- python - 旧值不在 SQLAlchemy 中可变 numpy 数组的历史记录中