【问题标题】:docker-compose connecting two appsdocker-compose 连接两个应用程序
【发布时间】:2021-07-24 01:20:45
【问题描述】:

我正在尝试使用 docker compose 链接两个应用程序我有以下 yaml 文件

version: '3'
services:
 app1:
   build: 
     context: ../../repos/app1
   ports:
     - "8080:8080"
 app2:
   build: .
   ports:
     - "8081:8080"

我知道他的端口排列如下 host_port:container_port - https://docs.docker.com/compose/networking/

这个堆栈溢出让我指定了端口,以便容器位于同一个容器端口上。 Multiple docker containers with same container port connected to the same network

然后我运行docker compose up

我看到创建了两个图像并运行了两个进程

REPOSITORY               TAG       IMAGE ID       CREATED      SIZE
main_app2   latest    1d204754b5c3   5 days ago   725MB
main_app1     latest    58e838149b97   5 days ago   754MB
PS C:\Users\am818j\repos\main> docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS         PORTS                                                           NAMES
d6b6c3411670   main_app2   "/opt/jboss/wildfly/…"   8 minutes ago   Up 8 minutes   8443/tcp, 9990/tcp, 0.0.0.0:8081->8080/tcp, :::8081->8080/tcp   main_app2_1
392e8d6da3c7   main_app1     "/opt/jboss/wildfly/…"   8 minutes ago   Up 8 minutes   8443/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 9990/tcp   main_app1_1

我可以看到两个进程正在运行并从以下 url 访问它们 http://localhost.test.com:8081/app2/faces/home.faceshttp://localhost.test.com:8080/app1/faces/home.faces

但我没有看到 app1 和 app2 之间的数据流。是否可以让这两个应用程序相互通信?如果是这样,我缺少什么来测试这种通信?

【问题讨论】:

    标签: docker docker-compose dockerfile docker-networking


    【解决方案1】:

    您对流程一言不发。他们是否在尝试相互交流?如何?错误信息是什么?

    我猜你让他们尝试与localhost:8000localhost:8001 交谈。但是,每个容器都有自己的本地主机环回——它们不共享一个。相反,他们应该与app1:8000app2:8000 交谈。注意80008001 - ports 参数将您接口上的端口映射到 CONTAINER 接口中的端口...就容器而言,它仍在侦听端口 8000 和您的其他容器将不得不使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 2021-01-26
      • 1970-01-01
      • 2020-01-06
      • 2021-04-04
      相关资源
      最近更新 更多