我在Ubuntu 14.04上的Docker容器中运行了一个.NET Core 1.1应用程序,它无法连接到在单独服务器上运行的SQL Server数据库。
错误是:
未处理的异常:System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:TCP提供者,错误:25 - 连接字符串无效)
据我在文档中看到,默认情况下,在容器中运行的应用程序可以访问外部网络,那么阻止此连接的是什么?
答案 0 :(得分:3)
默认情况下,在容器中运行的应用程序可以访问外部网络
只有在为容器分配了有效的IP地址时才可以访问。有时Docker为容器选择的IP可能与外部网络冲突。
默认情况下,容器在s = struct('a', 1, 'b', 2, 'c', 3); % A sample structure
save('temp.mat', '-struct', 's'); % Save fields to a .mat file
clear all % Clear local variables (just for display purposes)
load('temp.mat'); % Load the variables from the file
whos % Display local variables
Name Size Bytes Class Attributes
a 1x1 8 double
b 1x1 8 double
c 1x1 8 double
网络中运行,请查看它:
bridge
找到容器并检查其IP。
要解决冲突,可以customize docker network inspect bridge
网络并设置bridge
参数来更改网络的IP范围(配置文件位置取决于主机' OS):
bip
或create新的泊坞网络。
或试用"bip": "192.168.1.5/24"
选项:docker run network settings
答案 1 :(得分:0)
这有帮助吗?
Connect to SQL Server database from a docker container
此外,谷歌搜索这个“docker连接到sql server数据库”似乎返回了很多有用的结果。