【问题标题】:Why my app docker is not getting connected to my database docker?为什么我的应用程序 docker 没有连接到我的数据库 docker?
【发布时间】:2021-09-06 07:33:56
【问题描述】:

这是我的docker-compose.yml 文件:

version: "3.9"
services: 
    api:
        image: nefcanto/dotnet-dev
        restart: always
        container_name: DotNetApi
        working_dir: /Api
        environment: 
            - HolismProjectsRoot=/HolismDotNet
        volumes: 
            - /HolismDotNet/Framework:/HolismDotNet/Framework
            - /HolismDotNet/Api:/HolismDotNet/Api
            - .:/Api
        ports: 
            - "5000:5000"
        command: >
            sh -c
            "
            dotnet build
            && dotnet Api/bin/Holism.Geo.Api.dll
            "
        depends_on: 
            - "sql"
    sql:
        image: mcr.microsoft.com/mssql/server:2019-latest
        restart: always
        container_name: Sql
        volumes:
            - ./Database:/var/opt/mssql
        environment: 
            - ACCEPT_EULA=Y
            - SA_PASSWORD=lksU2o412f7tBj58t07B
            - MSSQL_PID=Express
        ports:
            - 1433:1433
        command: >
            sh -c
            "
            tail -f /dev/null
            "

如您所见,我正在开发.NET Core 应用程序,并且创建了两个容器。 这是我的应用使用的连接字符串:

data source=sql,1433; initial catalog=Geo; user id=sa; password=password_here

我使用sqlSql 进行了测试。但是我的应用容器没有看到我的数据库容器。

我在 linux 上,我可以使用交互式 shell 连接到我的数据库。

docker exec -it DotNetApi sh -c
# /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P password_here
> select newid();
> go;
                                    
------------------------------------
2FCD5E38-B526-4B76-AB74-A8DF9971D103

(1 rows affected)

我该怎么办?

【问题讨论】:

  • 要通信的服务器的名字应该是服务的名字。在这种情况下,您应该尝试将 localhost 替换为 sql

标签: sql-server docker .net-core containers


【解决方案1】:

请记住,Docker 仅将 container_name:dynamic_Ip 映射到用户创建的网络上。

显然,您使用的是默认桥接网络,因此您的应用将无法找到 sql 或 Sql 或其他任何内容。

你有两种不同的方法来解决这个问题:

  1. docker network create -d bridge my-bridge-network 并在该网络上运行这些容器。

  2. 运行容器时,您必须 --link 它们,如 documentation 所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2020-12-23
    • 2019-02-01
    • 2016-09-29
    • 2021-09-18
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多