docker - 连接两个docker-compose容器

标签 docker docker-compose docker-container ubuntu-server

我有一个开放端口80的Ubuntu远程服务器。端口80用于前端,而我的应用程序的后端位于端口8080上。
我的docker-compose.yml文件:

version: '3.3'

services: 
  frontend: 
    image: bloomingthebrand/developers:frontv0.0.12
    ports:
      - 80:80
    depends_on:
      - backend
  backend:
    image: bloomingthebrand/developers:backv0.0.4
    ports: 
      - 8080:8080
由于服务器上没有打开8080端口,因此我希望它们在内部进行通信。
我尝试放置网络属性,但无法访问http:// mynet:8080 / api
version: '3.3'

services: 
  frontend: 
    image: bloomingthebrand/developers:frontv0.0.12
    ports:
      - 80:80
    depends_on:
      - backend
    networks:
    - mynet
  backend:
    image: bloomingthebrand/developers:backv0.0.4
    ports:
      - 8080:8080
    networks:
    - mynet
networks:
  mynet:
    driver: bridge
    ipam:
      driver: default
我也尝试访问http://host.docker.internal:8080/,但仅在寡妇上有效,我的服务器在ubuntu上

最佳答案

当使用compose进行angular和react开发时,您通常需要在您的api调用中使用angular / react代理,默认情况下,这些框架不会这样做,并且您的浏览器将尝试进行这些调用,这就是您所遇到的情况。看一下这个 Angular 例子,以及它如何在app-ui / proxy.conf.json中设置对api的代理:https://github.com/bbachi/angular-nodejs-docker-compose
在您的情况下,您的代理配置文件应类似于:

{
  "/api": {
    "target": "http://backend:8080",
    "secure": false
  }
}
顺便说一句,您实际上不需要指定网络,默认情况下,同一撰写文件中的所有服务都将通过自动为其设置的默认网络相互通信,因此您的撰写应该可以正常工作,如下所示:
version: '3.3'

services: 
  frontend: 
    image: bloomingthebrand/developers:frontv0.0.12
    ports:
      - 80:80
    depends_on:
      - backend
  backend:
    image: bloomingthebrand/developers:backv0.0.4

关于docker - 连接两个docker-compose容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64306479/

相关文章:

docker - 为什么 docker 必须从 dockerfile 创建镜像,然后从镜像创建容器,而不是从 Dockerfile 创建容器?

docker - 如何将文件从主机复制到 Docker 容器?

node.js - docker compose extra_hosts 不改变/etc/hosts文件

docker - 将gitlab设置为docker容器,并显示docker Registry错误500

docker - Docker 容器基本身份验证中的 Nginx

java - IntelliJ 在 Docker 中调试 Java 应用程序

docker - 无法使用 docker-compose 挂载文件

linux - 在 docker 容器内的命令

linux - 在 Redis (Debian GNU) 容器的任何目录中都找不到 shutdown 和 systemctl

docker - 测试容器中的体积