我试图有我的项目集装箱化,但遇到了一个问题,我不能得到我的头周围。
我的工作:
1.创建网络=〉Docker网络创建网络-开发
- Create a SQL server on the network (port 1440) => docker run --hostname SQL-server --network Network-Dev -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=passwordsAreOverrated@dev2023" -e "MSSQL_PID=Express" -p 1440:1433 -d --name dev-SQL -v //c/mount/sql:/var/opt/mssql/data mcr.microsoft.com/mssql/server:latest
1.在网络上创建API =〉Docker运行--rm--名称开发API--网络网络开发p 5000:80 api-dev
What happens: The Network is created, the SQL server is running (and accessible on the host machine by SSMS on 127.0.0.1,1440)
但是当API试图连接到SQL服务器时,它会得到一个错误消息。使用connectionstring "Server = SQL-server,1440;用户Id = sa;密码=密码被高估@dev2023;可信连接=真;信任服务器证书=真;集成安全性=假; "
来自. Net应用程序的错误:Microsoft.Data.SqlClient.SqlException: '建立与SQL Server的连接时出现与网络相关的或特定于示例的错误。找不到服务器或服务器不可访问。请验证示例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:TCP提供程序,错误:40-无法打开与SQL Server的连接:无法打开与SQL Server的连接)'
通过Docker检查网络时(Docker network inspect Network-Dev),我将网络视为连接两个容器的桥梁。
我想知道我在这里错过了什么,如果有可能,甚至是一个解决问题的办法;)
谢谢你读了这一切!
1条答案
按热度按时间1cosmwyk1#
在Docker网络上,您使用未Map的端口号,因此应使用端口1443。由于这是默认值,因此可以在连接字符串中省略它:
如果需要从主机访问SQL Server,则只需将端口Map到主机端口。如果只需从API容器访问SQL Server,则无需MapSQL Server端口。