gpt4 book ai didi

Docker 容器应用程序无法连接到 Docker 主机中的 SQL Server

转载 作者:行者123 更新时间:2023-12-02 17:53:03 29 4
gpt4 key购买 nike

Docker 容器中的 .NET 应用程序(基于 microsoft/dotnet-framework 镜像)无法连接到安装在 Docker 主机系统上的 SQL Server 2016。 Docker 主机为 Windows Server 2016。Docker 版本为 17.03.2-ee-5。

我使用以下命令序列运行容器和 .NET 应用程序:

docker run -it microsoft/dotnet-framework cmd
docker cp App <container-id>:/
docker exec -it <container-id> cmd
cd App
TestConn.exe

TestConn.exe 在大约 10 秒后抛出异常,提示它无法连接到 SQL Server。连接字符串是:
Data Source=localhost;Initial Catalog=SomeDB;Persist Security Info=False;User ID=appuser;Password=apppwd;MultipleActiveResultSets=False;Connection Timeout=30;

如果我在 Docker 主机系统中运行 TestConn.exe,则应用程序成功连接到 SQL Server。

我加了 --expose=1433docker run命令 - 没有用。我希望它起作用的方式是 TestConn.exe 尝试连接到 localhost(默认 SQL 端口 1433),然后连接到 Docker 主机中的端口 1433,该端口对应于 SQL Server。

最佳答案

您正在寻找的功能确实存在,ip 是“host.docker.internal”,您可以用“localhost”替换它,应用程序将能够连接到在您的另一个 docker 容器中运行的数据库。

这仅从 18.03 版本开始,适用于 Mac 和 Windows(目前尚不支持 Linux...)。在 Linux 中,在您的 docker run 命令中“使用 --net="host”,然后您的 docker 容器中的 localhost 将指向您的 docker 主机。"

How to access host port from docker container有更多关于这方面的信息。

关于Docker 容器应用程序无法连接到 Docker 主机中的 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45828911/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com