本教程預設已經安裝好 Docker , 在 Windows 10 1903 使用 Windows Docker  來執行 SQL Server 容器 ,並且在 SQL Server 容器中還原北風資料庫,過程使用 Powershell 來執行 Docker 指令。

 

開發機環境

  • Windows 10 1903
  • PowerShell
  • SSMS
  • Docker 18.09.2
  • windows container : willh/mssql-server-windows-developer:1903

 

1.下載 SQL Server Image

預設本機已安裝好 Docker,開啟 PowerShell 下載 SQL Server Image,因為下載的版本的為 Tag 1903,請先確認本機 windows 10 版本 為 1903

docker pull willh/mssql-server-windows-developer:1903

下載好後可以用 Docker 指令來確認是否完成

docker images

 

2.將 SQL Server Image 注入到 Container 執行

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Test@123" `
-p 1433:1433 --name sql1 `
-d willh/mssql-server-windows-developer:1903
  • -e "ACCEPT_EULA=Y" : 將 ACCEPT_EULA 變數設為任意值可確認您接受終端機使用者合約。 此為 SQL Server 映像的必要設定
  • SA_PASSWORD : sa 帳號的密碼, 該密碼長度至少需為 8 個字元且符合 SQL Server 密碼需求
  • -p 1433:1433 : 將主機環境上的 TCP 通訊埠 (第一個值) 對應至容器中的 TCP 連接埠 (第二個值)。 在此範例中, SQL Server 會接聽容器中的 TCP 1433, 而這會公開至主機上的埠1433
  • --name sql1 : 指定產生的容器名稱,執行多個容器時無法重複使用此相同名稱,範例取名為 sql1
  • 指定 image : willh/mssql-server-windows-developer:1903

執行後產生了 SQL Server Container

可以用 Docker 指令查看container狀態

docker ps

到目前為止已經成功的將 SQL Server 容器執行起來,我們可以用 SSMS  SQL 工具來使用資料庫了

  • 伺服器名稱 : 本機 IP 127.0.0.1, 本機對應 Port 在產生 Container 時預設為 1433
  • 密碼 : 產生 container 時設定的密碼

連線後我們就可以開始使用資料庫來進行開發了

 

3.複製北風資料庫至 Container

到目前為止已經可以開始進行資料庫的建置開發,但開發人員有時會需要測試資料來測試功能,除了自行建立測試資料庫外也可以利用還原資料庫的方式來倒入資料,接下來將介紹如何將北風資料庫還原至容器中的 SQL Server

此範例以北風資料庫為例,首先準備好北風資料庫或已有的 bak 檔 (請自行google下載)

接著開啟 PowerShell 且到檔案所在路徑

將 Northwind.bak 複製到容器中的 C:/ 目錄下,我們先前替 SQL Server 容器取名為 sql1

docker cp .\Northwind.bak sql1:C:/

接著我們可以進入到容器中的 PowerShell  來確認是否複製成功(也可以直接跳到下個步驟,此步驟只是確認用)

docker exec -it sql1 powershell

確認後離開容器回到本機

exit

 

4.還原北風資料庫

開啟 SSMS 還原資料庫

 

 

 

總結

隨著容器技術的發展越來越成熟,也帶給開發者許多彈性,以往在開發機上安裝 SQL Server 要經歷著繁瑣的下載、安裝、設定後才可使用,耗時又耗力(可以泡杯咖啡找同事閒聊一陣子這樣想好像也不錯XD),如今透過容器技術下載映像檔後即可馬上產生 Container 來使用,而且整個啟動過程不用幾秒鐘,還可以橫向擴展,玩壞了就刪除容器從啟一個新的 Container 即可,非常方便。以這次教學範例為例,最耗時就是下載 Image ,下載完成後到開始使用資料庫不用幾秒鐘即可完成,當然開發者需自備 Docker 基本知識來降低採雷機率。對了 ! Docker Hub 生態圈也非常豐富,裡面有許多開發者提供的資源可使用,例如這次所使用 SQL Server Image 就是 Will 保哥所提供的 ^^ 。

 

相關連結

創作者介紹
創作者 Eason的部落格 的頭像
Eason

Eason的部落格

Eason 發表在 痞客邦 留言(0) 人氣( 280 )