我在Windows 10计算机上安装了SQL Server 2016 Express,适用于Windows的docker和IIS。
SQL Server Express配置为在1455端口上侦听。罗斯文(Northwind)示例数据库在那里。
Windows防火墙已禁用。
Ipconfig
显示以下内容:
Ethernet adapter vEthernet (DockerNAT) 2:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::70f1:3323:a7a8:b7a5%21
IPv4 Address. . . . . . . . . . . : 10.0.75.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
我在Visual Studio 2017中创建了一个非常简单的.net core 2控制台html" target="_blank">应用程序:
using System;
using System.Data.SqlClient;
using System.Net.Http;
namespace ConnectSqlServer
{
class Program
{
static void TestHttp()
{
using (var client = new HttpClient())
{
var response = client.GetAsync("http://10.0.75.1").Result;
var content = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(content);
}
}
static void Main(string[] args)
{
TestHttp();
var cn = new SqlConnection("Data Source=10.0.75.1\\SQLEXPRESS,1455;Initial Catalog=Northwind;User ID=docker;Password=SomeStrongPassword;");
cn.Open();
}
}
}
从Visual Studio在Windows上运行时,该应用程序成功运行。但是,当我添加Docker
Support并运行它时,TestHttp方法可以正常运行,但是无法连接到SQL Server,出现以下异常:
System.Data.SqlClient.SqlException
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL
Server配置为允许远程连接。(提供程序:TCP提供程序,错误:40-无法打开与SQL Server的连接)
这是我的Dockerfile
:
FROM microsoft/dotnet:2.0-runtime
ARG source
WORKDIR /app
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "ConnectSqlServer.dll"]
这是我的docker-compose.yml
:
version: '3'
services:
connectsqlserver:
image: connectsqlserver
build:
context: ./ConnectSqlServer
dockerfile: Dockerfile
我该怎么办才能从运行在Docker容器上的.net core 2.0应用程序连接到Windows主机上运行的本地SQL Server Express?
编辑:
答:禁用Windows防火墙时要小心。
我关闭了Windows防火墙,但仅在域网络上。Windows将DockerNAT适配器视为公共网络。因此Windows防火墙阻止了与SQL
Server的连接。
我关闭了公共网络上的Windows防火墙,现在可以连接了。
问题是我没有正确禁用Windows防火墙。
我关闭了Windows防火墙,但仅在域网络上。Windows将DockerNAT适配器视为公共网络。因此Windows防火墙阻止了与SQL
Server的连接。
我关闭了公共网络上的Windows防火墙,现在可以连接了。
我在AWS控制台上创建了一个MySQL RDS。然后我使用以下步骤在MySQL Workbench中成功连接到该RDS: 连接方式:标准(TCP/IP) 然后我尝试在我的Asp中连接它。net核心应用程序,它在openConnection()上给了我错误。使用了以下连接字符串: “Server=zargham.ccir1327bjhl.us-east-2.rds.amazonaws.com;Por
我已经正确地设置了Docker,并运行了一些容器没有问题。现在我试着设置邮件。我试了两个: 1 https://hub.docker.com/r/paintedfox/postgresql/ 2 https://hub.docker.com/_/postgres/ 我已尝试在VirtualBox中为容器设置端口转发。 我还尝试了机器主机,如Kitematic:192.168.99.100所示
问题内容: 我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。 Docker-machine正常运行,并且能够通过docker-machine ssh连接。 但是无法从docker-compose连接。 无法通过http + unix://var/run/docker.sock连接到Docker守护程序-它正在运行吗? 如果它
我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。 docker-machine运行正常,并且能够通过docker-machine SSH进行连接。 但无法从Docker-Compose连接。 无法连接到HTTP+UNIX上的Docker后台进程://var/run/Docker.sock-它正在运行吗? 如果它位于非标准位置
我是新来的docker和有一个简单的DW(dropwizard)应用程序连接到elasticsearch,其中已经运行在docker使用docker-compose.yml,其中有以下内容。 弹性搜索的Docker-compose.yml 注意:我将8200和8300公开为主机(本地mac系统)上的ES端口 现在,当我在本地主机上运行连接到8200中ES的DW应用程序时,一切都正常了,但现在我正在
例外情况是: docker-compose文件是: 多克菲乌勒