Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';无法从停靠的.NET核心应用程序访问SQL Server_.net_Sql Server_Docker - Fatal编程技术网

Can';无法从停靠的.NET核心应用程序访问SQL Server

Can';无法从停靠的.NET核心应用程序访问SQL Server,.net,sql-server,docker,.net,Sql Server,Docker,我正在使用docker在我的VPS(Ubuntu 18.04)中部署我的web应用程序 这是我的文件 FROM microsoft/dotnet:latest COPY . /app WORKDIR /app RUN dotnet restore RUN dotnet build EXPOSE 5000/tcp ENV ASPNETCORE_URLS http://*:5000 ENV ASPNETCORE_ENVIRONMENT docker ENTRYPOINT [ "dotnet",

我正在使用docker在我的VPS(Ubuntu 18.04)中部署我的web应用程序

这是我的文件

FROM microsoft/dotnet:latest
COPY . /app
WORKDIR /app

RUN dotnet restore
RUN dotnet build

EXPOSE 5000/tcp
ENV ASPNETCORE_URLS http://*:5000
ENV ASPNETCORE_ENVIRONMENT docker

ENTRYPOINT [ "dotnet", "watch", "run", "--no-restore", "--urls", "http://*:5000"]
我也使用Nginx,它工作得非常好()

它已经在用SQLite运行,但我想用SQLServer。因此,我找到了在Mac/Linux上使用SQL Server的教程: 而且效果很好。我使用以下命令运行SQL Server容器:

 docker run -d --name sql_server_demo -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=XXXXX' -p 1433:1433 microsoft/mssql-server-linux
并使用此连接字符串:

"Server=localhost;Database=Movies;User Id=sa;Password=XXXXXXX;"
因此,在本地运行一个简单的
dotnet
就可以了

但当我把我的应用程序放在一个容器中(即使是本地的),它就无法访问我的数据库


我真的不明白为什么。我在我的Macbook上测试,我的VPS在Linux上,所以看起来你在一个容器中安装了.net core应用程序,然后你在一个单独的容器中运行数据库。如果是这样,那么您的连接字符串将无法在.net核心应用程序容器中工作。容器中的Localhost与主机的Localhost不同

您可以尝试使用主机网络,看看这是否可能是问题所在。 我记得主机联网选项在mac和windows上的Docker桌面上有一些古怪的行为。如果你在linux上,应该没问题

不过我建议你使用docker compose之类的东西

可能重复的