首页 > 解决方案 > 如何进行名称解析。使用 docker compose 和 docker network 时发生 net::ERR_NAME_NOT_RESOLVED 错误

问题描述

如何进行名称解析。使用 docker compose 和 docker network 时发生 net::ERR_NAME_NOT_RESOLVED 错误

你好。

当我使用 docker compose 和 docker network 创建前端服务器和后端服务器和数据库服务器时,net::ERR_NAME_NOT_RESOLVED发生在 google chrome 控制台中。

下面的文件是我的docker-compose.yml.
我保证后端容器与前端容器的通信没有问题,因为我附加到前端容器(使用命令docker exec -it frontend-container /bin/bash)并确认通信(使用命令curl backend-container:4000)。但是,当我尝试从 Web 浏览器(前端应用程序)通信后端容器时,net::ERR_NAME_NOT_RESOLVED发生在 chrome 开发人员控制台中。

我认为名称解析不是从网络浏览器进行的。但是我不知道在这种情况下如何命名解析。

请帮助我并教我如何在这种情况下解析名称。谢谢你。

version: "3.5"
services:
  frontend:
    build:
      context: "./project01_frontend"
      dockerfile: "Dockerfile.prod"
    container_name: frontend-container
    restart: always
    tty: true
    ports:
    - "80:80"
    env_file:
      - "./project01_frontend/.env"
    depends_on:
      - "db"
      - "backend"
  backend:
    build:
      context: "./project01_backend"
      dockerfile: "Dockerfile.dev"
    container_name: backend-container
    restart: always
    tty: true
    expose:
      - "4000"
    env_file:
      - "./project01_backend/.env"
    depends_on:
      - "db"
    command: ["./wait-for-db-container.sh", "yarn", "start"]
  db:
    image: mysql:5.7.34
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: db-container
    volumes:
      - ./project01_backend/initdb.d:/docker-entrypoint-initdb.d
    environment:
      MYSQL_DATABASE: "typeorm_db"
      MYSQL_ROOT_PASSWORD: "password"
      TZ: "Asia/Tokyo"
    restart: "always"
    expose:
      - "3306"

标签: dockerdocker-compose

解决方案


推荐阅读