如何为多容器Docker应用配置远程HTTP端点以开展性能测试
多容器Docker应用配置HTTP端点操作指南
前置检查
- 先确认你本地的Docker Compose配置完整,你用到的BankCQRS Demo本身已自带
docker-compose.yml,先本地执行docker compose up -d确认所有服务(命令端、查询端、数据库等)均可正常启动,无端口冲突。 - 远端服务器提前安装好Docker和Docker Compose,提前在服务器安全组/防火墙配置中开放你需要对外暴露端口的入站规则。
通用配置步骤(适用于所有多容器Docker应用)
1. 调整容器网络与端口映射配置
多容器应用默认会使用Docker Compose创建的内部网桥完成服务间通信,不需要把所有服务的端口都暴露到公网,仅需暴露对外提供HTTP服务的入口容器端口即可。
- 编辑
docker-compose.yml文件,找到作为HTTP入口的服务(本次Demo中是BankCQRSPost和BankCQRSGet两个服务,你可以按需选择暴露单个服务,也可以两个都暴露,或者新增反向代理做统一入口) - 端口映射格式为
宿主机端口:容器内服务端口,比如要把Demo的查询服务对外暴露在服务器8080端口,就给BankCQRSGet服务的ports配置项添加- "8080:80",要把命令服务暴露在8081端口就添加- "8081:80" - 注意:不要把数据库、缓存这类内部依赖服务的端口映射到宿主机公网,避免出现安全风险
2. (可选)配置反向代理统一入口
如果你的应用有多个HTTP服务需要对外暴露,建议新增Nginx或者Traefik作为统一入口,不需要开放多个公网端口:
- 给
docker-compose.yml新增Nginx服务,参考配置:
services: nginx: image: nginx:alpine ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - BankCQRSGet - BankCQRSPost
- 编写
nginx.conf把不同路径转发到对应内部服务即可,比如把/api/query转发到BankCQRSGet:80,把/api/command转发到BankCQRSPost:80,这种配置下所有业务服务都不需要单独映射宿主机端口,仅Nginx暴露80端口即可。
3. 部署到远端服务器验证
- 把整个项目代码上传到远端服务器,进入项目根目录执行
docker compose up -d --build启动所有服务 - 启动完成后执行
curl http://localhost:你配置的宿主机端口/健康检查路径验证服务器本地可以正常访问,本次Demo可以直接调用对应增查接口验证功能正常 - 本地浏览器访问
http://你的服务器公网IP:配置的端口验证HTTP端点可以正常公网访问,功能验证通过即可开始性能测试。
4. 性能测试注意事项
- 测试前建议关闭Docker的日志debug模式,避免不必要的性能损耗
- 测试过程中可以用
docker stats命令实时查看各个容器的CPU、内存占用情况 - 如果要做压测,建议把压测工具和应用部署在不同的服务器,避免资源抢占影响测试结果准确性。
内容的提问来源于stack exchange,提问作者AmanLonare
相关产品推荐
相关产品推荐

