且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

从Docker容器连接到SQL Server数据库

更新时间:2022-01-15 22:22:51

假设




  • Microsoft SQL Server 2016

  • Windows 10周年更新

  • Windows容器

  • ASP.NET Core应用程序

  • Assumptions

    • Microsoft SQL Server 2016
    • Windows 10 Anniversary Update
    • Windows Containers
    • ASP.NET Core application

      • 在MS SQL中,展开数据库

      • 右键单击安全性/登录名

      • 选择新登录名

      • 创建用户名和密码。

      • 分配一个服务器角色 ...由于我只是在测试,所以我使用sysadmin

      • 在用户映射下,我已将新用户添加到数据库中

      • In MS SQL expand the database
      • Right click on 'Security / Logins'
      • Select 'New Login'
      • Create a user name and password.
      • Assign a 'Server Role(s)'...I used sysadmin since I'm just testing
      • Under 'User Mapping' I added my new user to my database and used 'dbo' for schema.

      右键单击数据库,选择属性/安全性/服务器身份验证/ SQL Server和Windows身份验证模式单选按钮。重新启动MS SQL服务。

      Right click on your database, select 'Properties / Security / Server Authentication / SQL Server and Windows Authentication Mode' radio button. Restart the MS SQL service.

      示例

"ConnectionStrings": {
        "DefaultConnection": "Server=YourServerName;Database=YourDatabaseName;MultipleActiveResultSets=true;User Id=UserNameYouJustAdded;Password=PassordYouJustCreated"
},

请确保删除 Trusted_Connection = True

我的示例Docker文件

My example Docker file

FROM microsoft/dotnet:nanoserver
ARG source=.
WORKDIR /app 
EXPOSE 5000 
EXPOSE 1433 
ENV ASPNETCORE_URLS http://+:5000 
COPY $source .



发布应用程序



从同一运行在提升的PowerShell中作为Docker文件的位置

Publish Application

Running from the same location as the Docker file in an elevated PowerShell

dotnet publish

docker build bin\Debug\netcoreapp1.0\publish -t aspidserver

docker run -it  aspidserver cmd

我想运行该容器并查看其在PowerShell中运行时的输出。

I wanted to run the container and see the output as it was running in PowerShell.

一旦容器在命令提示符下启动并在容器中运行,我便启动了我的应用程序。

Once the container was up and running in the container at the command prompt I kicked off my application.

dotnet nameOfApplication.dll

如果一切都按计划进行,应该启动并运行。

If everything went to plan one should be up and running.