docker - 是否可以在 2 个 docker-compose.yaml 之间通过 docker-compose 在 docker 网络上卷曲?
问题描述
我有 2 个应用程序在不同的网络上运行,它使用单独的 docker-compose.yaml。所以我试图从应用程序 A 向应用程序 B 调用请求,但它不起作用。
docker exec -it app_a_running curl http://localhost:8012/user/1
所以我得到了一个错误
cURL error 7: Failed to connect to localhost port 8012
docker-compose-app-a.yaml
version: "3"
services:
app:
build: go/
restart: always
ports:
- 8011:8011
volumes:
- ../src/app:/go/src/app
working_dir: /go/src/app
container_name: app-a
command: sleep 72000
networks:
- app-a-network
networks:
app-a-network:
docker-compose-app-b.yaml
version: "3"
services:
app:
build: go/
restart: always
ports:
- 8012:8012
volumes:
- ../src/app:/go/src/app
working_dir: /go/src/app
container_name: app-b
command: sleep 72000
networks:
- app-b-network
networks:
app-b-network:
问题:
- 是否有可能做到这一点?
- 如果第一个问题是可能的,请建议我:)
解决方案
您可以curl
在 docker 容器上使用。您的 curl 命令不起作用的原因可能是您没有发布 docker 容器的端口。例如,尝试:
docker run -d -p 8080:8080 tomcat
代替
docker run -d tomcat
这会将您机器的 8080 端口转发到容器的 8080 端口。
如果您有容器的外壳,则可以使用服务名称或容器名称来卷曲 Docker 网络上的容器,前提是您的目标存在于相同的网络中。
推荐阅读
- css - 设置 div 相对于屏幕尺寸的最小、最大和默认高度
- locking - Dbeaver 表锁定
- jquery - Jquery FullCalendar API
- sql-server - 在 SSIS Salesforce 集成工具包连接器中动态决定 salesforce 对象名称和字段
- javascript - 使用 tablesorter 对 TR 块进行排序
- sql - Oracle UPDATE 语句性能
- hyperledger-fabric - Hyperledger Fabric NodeJS 链码教程
- android - 导航抽屉中的登录会话,如 Play 商店
- c# - ShutDownListener 中的 TaskCanceledException
- javascript - 在仅使用 javascript 或 jquery 的移动浏览器中准备好键盘时出现?