![](/img/trans.png)
[英]Not able to connect to host database from asp.net core application which is in docker windows container
[英]Deploying an ASP.NET Core Application with a database that is on a docker container
我构建了一个 ASP.NET Core Web 应用程序,该应用程序具有连接到 docker 容器的数据库,我想将其部署到 Web,使其可以在任何计算机或移动设备上使用 Web 浏览器中的 URL 进行访问。
这是我的应用程序的 appsettings.json 代码:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"default": "Server=localhost,9999;Database=dbweb;User Id=sa; Password=Dbwebsql1234;MultipleActiveResultSets=true"
}
}
截至目前,该应用程序仅通过以下网址在 localhost 上运行: https://localhost:5001/ ,其数据库连接到名为 dbweb 的 docker 容器,该容器使用 mssql-server-linux:latest 的映像。 它的 docker 端口是 1433: 并且 (MAC IP:Port) 是 9999。数据库在本地运行,当我通过 Azure 连接到它时,服务器名称是“localhost,9999”。 尽管在网上搜索了许多资源,并查看了有关此主题的类似问题,但我无法找到部署应用程序的明确解决方案。 我想知道是否有必要创建一个 linode linux 服务器或任何远程服务器,通过终端上的 ssh 连接到该服务器,并在该服务器上为我的数据库创建一个新的 docker 容器,以及克隆 web 应用程序源从 github 到该远程服务器的代码仓库。 创建另一个 vm 服务器来托管我的应用程序将连接到的 sqlserver 的 docker 容器会更好,还是有更好的方法? 我计划使用 nginx 在远程虚拟机服务器上托管我的应用程序。 顺便说一句,我在 Mac OS 上。 我正在寻找一种更简单的方法来简化部署过程。 谢谢。
您可以通过多种方式实现您的目标。
选项一:
如果您想完全控制服务器基础结构(CPU、RAM、内存),请使用 Azure 的 IaaS 产品。 1. 使用您想要的操作系统创建 Azure 虚拟机 2. 安装 asp.net 核心 Web 应用托管服务器,打包您的应用,配置托管服务器并部署包 3. 安装 Docker 4. 在 AZ VM 中创建一个映像,就像您在 AZ VM 中所做的一样您的本地 MS sql 服务器并运行容器 5. 创建一个公共 IP 以通过 Internet 连接您的 VM,并使用 FQDN 配置 DNS。
选项b:
a) Azure 的 PaaS - 应用服务来托管您的 asp.net 核心 Web 应用[无需维护操作系统/托管服务器 + 您可以在 linux/Windows 操作系统之间进行选择。 完全由 Azure 管理] 和
b) PaaS - ACI(Azure Container Instances)用于您的数据库/db 服务器 [在 ACI 中,无需维护操作系统或 Docker。 它完全由 Azure 管理]。
此外,ACI 提供标记为 FQDN(完全限定域名)的公共 IP 和 DNS,您可以在 Web 应用程序的连接字符串中将其用作数据库服务器名称。 您可以使用它从本地计算机通过 SSMS 或 Azure 数据工作室连接到您的数据库,以直接检查您的数据。
注意:ACI 需要一个存储在注册表中的 docker 镜像(DockerHub / Azure 容器注册表 / 私有注册表)
循序渐进的良好指导开始的地方
ACI: https : //www.mssqltips.com/sqlservertip/6180/create-azure-container-instances-for-sql-server/
应用服务: https ://docs.microsoft.com/en-us/visualstudio/mac/publish-app-svc ? toc =% 2Faspnet%2Fcore%2Ftoc.json & bc =% 2Faspnet%2Fcore%2Fbreadcrumb%2Ftoc.json & view = vsmac- 2019&viewFallbackFrom=aspnetcore-3.1
设置初始配置后,您可以通过 Azure DevOps 加快部署 (CI/CD)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.