Heim  >  Fragen und Antworten  >  Hauptteil

Es kann keine Verbindung zum MySQL-Docker-Container von einem anderen Container im selben Netzwerk hergestellt werden, der Zugriff ist jedoch von außen möglich

Ich habe zwei Container – „node.js“ und „mysql“, die beide so eingerichtet sind, dass sie sich im selben Netzwerk befinden. Durch Ausführen von docker-compose up -d werden die Container gestartet und sie funktionieren. Ich kann von außen auf „node.js“ bzw. „mysql“ zugreifen.

Aber ich kann von „node.js“ aus keine Verbindung zu „mysql“ herstellen. Mache ich hier etwas falsch?

version: '3'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    env_file: .env
    volumes:
      - .:/app
    ports:
      - ${APP_PORT}:${APP_PORT}
    depends_on:
      - mysql
    networks:
      - appnet

  mysql:
    image: mysql:8.0
    restart: always
    env_file: .env
    environment:
      - MYSQL_ROOT_HOST=%
      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USERNAME}
      - MYSQL_PASSWORD=${DB_PASSWORD}
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - ${DB_PORT}:${DB_PORT}
    networks:
      - appnet

networks:
  appnet:

volumes:
  mysql-data:

Um eine Verbindung zu MySQL herzustellen, habe ich das Paket „knex.js“ verwendet und es funktioniert einwandfrei auf meinem lokalen Computer (gleiche Docker-Konfiguration)

P粉116631591P粉116631591373 Tage vor433

Antworte allen(1)Ich werde antworten

  • P粉232793765

    P粉2327937652023-09-13 14:36:34

    应该在可能构建得很糟糕的环境级别上看到,这里是一个包含 docker-compose 的链接:

    https://varsubham.medium.com/nodejs-mysql-docker -compose-ad156cd0c885

    希望这对你有帮助

    Antwort
    0
  • StornierenAntwort