使用docker創建和運行跨平台的容器化的mssql數據庫

我們一般啟用sql server數據庫要麼選擇安裝SQL Server實例和管理工具(SSMS),要麼用vs自帶的數據庫。如今net跨平台成為趨勢,今天給大家介紹另一種我最近在玩的方式,即使用docker創建並啟用sql數據庫。

本章介紹了在window10專業版下如何利用docker創建mssql數據庫,包括以下主題:

  • 安裝並驗證docker
  • 利用docker創建mssql實例
  • 使用vs2022連接sql

首先我們看下sql自帶的數據庫管理工具,打開vs2022-視圖-SQL Server對象資源管理器,在SQL Server實例中第一個選項就是vs自帶的數據庫。

在接下來的內容中我們來試着添加一個基於docker的數據庫容器鏡像

1.開啟虛擬化服務

  在安裝docker之前,需要確保虛擬化服務是開啟狀態。右鍵win圖標,選擇應用和功能(或者打開控制面板),點擊程序和功能-啟用或關閉windows功能,勾選Hyper-V,點擊確定開啟功能。(如果是win10家庭版的話,是看不到Hyper-V選項的,比較麻煩,需要修改註冊表,但網上有教程,可以搜索並按照教程做)

2.安裝Docker desktop

在docker官網根據需要選擇下載安裝程序,我們選擇windows版本。安裝完成以後docker會自動啟動,任務欄會有一個鯨魚圖標,表明docker正在運行。

我們可以通過命令行驗證一下docker的安裝情況,輸入docker –version可以看到版本信息

 也可以郵件鯨魚圖標,點擊About Docker Desktop查看

 3.部署本地mssql數據庫 

  第一步:拉取 SQL Server 2019 Linux 容器鏡像,打開命令行,輸入docker pull mcr.microsoft.com/mssql/server:2019-latest

 

 輸入docker images查看鏡像

 

第二步:1.運行容器鏡像,命令行輸入docker run -e “ACCEPT_EULA=Y” -e “SA_PASSWORD=MyStrongPwd!2#” -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest

其中: ACCEPT_EULA=Y表示接受最終用戶許可協議

    SA_PASSWORD=MyStrongPwd!2#表示賬戶名sa,密碼MyStrongPwd!2#

      -p設置端口 1433:1433 前者表示對外提供的訪問端口號,後者表示容器內部的端口號(如果這一步報錯”docker: Error response from daemon: Ports are not available…”,這說明端口被佔用了,一般是被sqlserver服務佔用了,可以打開sqlserver配置管理器將Sql server服務停止即可)

    -d設置鏡像名,設置為拉取的鏡像mcr.microsoft.com/mssql/server:2019-latest

      還可以通過 –name xxxx 為容器指定一個自定義名稱,通過–hostnam xxxx設置容器主機名,如果不設置docker會隨機給容器命名。

   2.查看運行狀況,命令行輸入docker ps,可以看到正在運行

   3.另外也能在Docker Desktop-Container查看剛剛創建的容器

4.使用VS驗證

 打開vs的SQL Server對象資源管理器,點擊左上角添加 SQL Server按鈕,輸入信息,點擊連接

完成後在SQL Server實例列表裡可以看到新增了一個localhost服務器,說明vs已經連接上docker創建的sql了

 

 因為還沒有創建數據庫,所以只能看到系統數據庫,下一篇我們將使用EFCore創建並初始化數據庫。

 

Tags: