【问题标题】:Connect local SQL Server database from the containerized Asp.net Core Application从容器化的 Asp.net Core 应用程序连接本地 SQL Server 数据库
【发布时间】:2021-02-14 07:27:28
【问题描述】:

我有一个非常简单的“hello world”类型的 Asp.net Core API 应用程序(包括 swagger),我在其中单击一个 API 控制器,它从数据库中获取数据并以 JSON 形式返回。我已经通过调试器测试了在我的系统上的工作,进入 docker 一切都很好。

我创建了一个 docker 文件(不是 docker compose)并构建了映像,最后运行了 docker 容器并检查了该应用程序确实可以访问。但是,从数据库中获取数据的 API 控制器,该端点失败了。 我已经尝试了所有可能的选项,例如

  1. https://medium.com/@vedkoditkar/connect-to-local-ms-sql-server-from-docker-container-9d2b3d33e5e9
  2. How do I connect the local SQL Server database for the ASP.NET Core application running inside either local Docker or Kubernetes?

我有最新的 docker 版本(20.10.2,build 2291f61),它支持 host.docker.internal,但也不起作用。

我在禁用防火墙后尝试过,使用了端口 1433 的 IP 地址,使用了 host.docker.internal 和任何地方它连接到数据库时出现相同的错误。 好吧,我尝试使用相同的 IP 地址并通过 SQL Management Studio 进行本地连接,并确认我在用户名、密码或 SQL 服务器和数据库方面的拼写错误。

我有一个 asp.net 核心 API 应用程序,其中连接字符串存储在 appsettings.json 下。

建议的方法都不起作用。有什么不同的选择/线索吗?

【问题讨论】:

  • 请分享 Dockerfile。

标签: docker-container docker-cli


【解决方案1】:

尝试在宿主网络中运行容器

docker run --network host myimagename myappcontainer

这样 myappcontainer 将能够访问您机器上运行的 mssql。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多