Docker - 在 Mac 上安裝 MSSQL 的搖光吧!

這是一篇將 mssql 容器化的教學文。

 

Mac 上使用 MSSQL ,您可以有另一種選擇。

 

 

摁?搖光

瑤光

 

不是,親愛的。

 

這裡的搖光是指 Fluctlight

謹慎開啟。

 

 


 

本篇較為精簡,以下是本篇的小建議:

  1. 聽過 Mac
  2. 聽過 Terminal
  3. 聽過 Docker
  4. 聽過 DataBase
  5. 聽過 SAO

 


 

目錄

  1. 安裝 Docker
  2. 安裝 MSSQL
  3. 安裝 sql-cli
  4. 介紹 GUI

 


 

前言

寫這篇的動機是因為先前文章,有人發問關於 MSSQL 的問題,

由於筆者的環境目前是 Mac,因此踏上了安裝的旅程惹 ORZ。

 


 

一、安裝 Docker

安裝方法有兩種,個人建議用 brew 最快。

 

1.1 安裝

1.1.1 從官方網站安裝

下載網址:Docker Community Edition for Mac 

 

 

1.1.2 從 Homebrew 安裝

brew cask install docker
什麼是 Homebrew ?

 

 

1.2 記憶體配置

SQL Server 最低需求配置為 3.25 GB

因此我們需要增加容器配置的記憶體。

 

選擇 Preferences...

 

切換到 Advanced,將 Memory 增加至 4GB

 

更詳細的安裝步驟請參考:macOS 安装 Docker ^Q^

 

 

 

二、安裝 MSSQL

這邊我們不需要到微軟官方下載 MSSQL,

我們改到 docker store 上,可以找到 Microsoft SQL Server

只要將 image 下載來使用即可。

你知道嗎!將整個安裝步驟與等待時間省略掉,是多麼棒的事!

 

 

2.1 下載 Image

利用 docker pull 就可將該映像檔下載,namespacemicrosoft/mssql-server-linux

你知道嗎!namespace 與網址有關。「https://store.docker.com/images/mssql-server-linux

 

下載映像檔。 

docker pull microsoft/mssql-server-linux
你知道嗎!不需要擔憂存放 Images 的路徑而切換目錄,因為會以 global 方式存取。


 

2.2 查看 Image

下載完畢後,利用 docker images 可以查看本地擁有的映像檔。

docker images

 

所以檔案在哪?我真的很擔心怎麼辦?

docker inspect [IMAGE ID | REPOSITORY]
# docker inspect 4095d6d460cd
# docker inspect microsoft/mssql-server-linux

參考連結:Where are images stored on Mac OS X?

 

 

2.3 運行 Image

接著我們將利用剛剛的映像檔建立一個虛擬容器,並且在背景中運行。

docker run -d --name sql_server_demo -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=reallyStrongPwd123' -p 1433:1433 microsoft/mssql-server-linux

# 我是閱讀好幫手
  • -d:表示該指令將於背景中運行,如果沒使用,你的終端機會整個卡住
  • --name:sql_server_demo 為自訂的別名,當要指某個容器時,除了ID、也可以使用這個別名。
  • -e 'ACCEPT_EULA=Y':授權條款同意書 ( Y ),詳細可至「MICROSOFT 軟體授權條款」查看。
  • -e 'SA_PASSWORD=reallyStrongPwd123':指派預設帳號 sa 的密碼,務必注意規範「密碼原則」。
  • -p 1433:1433:-p [本地] [容器],本地 ( Mac ) 的 1433 對應到容器中 1433 的 port。 ( MSSQL 預設 1433 )
  • microsoft/mssql-server-linux:要使用的映像檔名稱。

 

 

2.4 查看已建立的容器

利用 docker ps 查看執行中的容器。

docker ps -a
  • -a:將所有容器顯示,包含未啟動的。

 

運行成功的話,STATUS 應該會顯示建立時間點。

如果失敗,應該會是密碼不夠嚴謹的問題,或是 1433 port 你的本地已經佔用。

 

 

2.5 如何停止容器運作

如果您要停止服務,即停止容器運作,利用 docker stop 即可。

docker stop sql_server_demo
  • sql_server_demo:這是容器的別名 NAME,你也可以使用 CONTAINER ID。

 

 

2.6 如何啟動容器

參照 2.5 的步驟,如果停止了,只要使用 docker start 就可以啟動。

docker start sql_server_demo
  • sql_server_demo:這是容器的別名 NAME,你也可以使用 CONTAINER ID。

 

 

2.7 如何刪除容器

如果想要刪除容器,請記得先停止容器!

利用 docker rm 指令,就可以刪除。

docker rm sql_server_demo
  • sql_server_demo:這是容器的別名 NAME,你也可以使用 CONTAINER ID。

 

 

2.8 如何刪除映像檔

剛剛下載的映像檔,使用 docker rmi 指令就可以刪除它。

docker rmi microsoft/mssql-server-linux

 

由於筆者要留著... 就不真的執行刪除惹!

 

 

 

三、安裝 sql-cli 

本範例將使用 node.jssql-cli 進行操作示意。

請務必確認容器是否啟動中

 

安裝 sql-cli 套件。

npm install -g sql-cli

 

接著試著連線看看。

mssql -u sa -p reallyStrongPwd123
  • -u:使用者名稱。
  • -p:密碼。

 

如果出現該畫面,就表示成功囉!

 

試試軟體版本查詢。

select @@version

 

試著建立資料庫。

CREATE DATABASE test

 

試著查詢現有資料庫。

.databases

 

 

 

四、介紹 GUI

在這邊,原諒筆者偷懶了 ...

 

 

 

有很多工具都很好用,端看看讀者們喜歡哪一種,

以下分享好用的圖形化介面工具。

 

DBeaver Community ( 免費 )

 

 

SQL Operations Studio ( 免費 )

 

 

安裝與操作方法 ...

 

 

抽牌!

觀落陰

 

 

 

搖出來了嗎?

 


 

×. 參考資料

 

有勘誤之處,不吝指教。ob'_'ov