簡體   English   中英

Docker mysql 容器無法連接到任何指定的 MySQL 主機

[英]Docker mysql container Unable to connect to any of the specified MySQL hosts

我正在開發一個asp .net core 5.0 web application ,我正在使用 docker 使用 ZAEF93945E84057AE7 當我嘗試運行 EF 命令add-migration時,我的asp.net core應用程序和MySQL有 2 項服務,我收到此錯誤:

 Unable to connect to any of the specified MySQL hosts.

這是我的Dockerfile的代碼

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
EXPOSE 8008
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["chatroom.csproj", "."]
RUN dotnet restore "./chatroom.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "chatroom.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "chatroom.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
EXPOSE 5000
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "chatroom.dll"]

這是我的docker-compose.yml文件的代碼

version: '3.0'
services:
  db:
    image: mysql:latest
    container_name: mysqldb
    environment:
      MYSQL_ROOT_PASSWORD: root      
      MYSQL_DATABASE: livredb
      MYSQL_USER: wassef
      MYSQL_PASSWORD: hw
    restart: always
    ports:
      - "3306:3306"

  web:
    image: chatroom
    build: 
      context: .
      dockerfile: Dockerfile
    ports:
      - "8008:5000"
    depends_on:
      - db

這是我的ConnectionString

"ConnectionStrings": {
    "mydb": "server=db;port=3306;userid=wassef;password=hw;database=livredb;"
  },

順便說一句,當我訪問我的MySQL客戶端時,我可以看到我的數據庫正在創建

原來主機網絡無法訪問 docker 網絡。 docker 網絡僅用於容器到容器的通信。 因此我將我的 ConnectionString 服務器更改為server=localhost

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM