首先我作業環境是 Ubuntu,並且已經安裝好 Docker 及 Docker-Compose,一般來說 MSSQL 都是直接安裝在 Windows 上,但微軟有提供 Docker 映像是讓使用者將 MSSQL 安裝在 Ubuntu 上,可以到 Docker Hub 上找到「Microsoft SQL Server - Ubuntu based images」,官方有提供幾個較新版本的 Tag 可以用,如:2022-latest、2019-latest、2017-latest,沒意外就是用最新的就好。我這次是使用 WSL(適用於Linux的Windows子系統)進行示範,不過在單純的 Ubuntu 伺服器上操作也是一樣。
▲ SSH 連線進入 Ubuntu 環境,可以用 sudo su
先切換到 root 會比較方便操作,我在根目錄 cd /
建立 mssql 子目錄 mkdir mssql
,接著進入該子目錄 cd mssql
,在裡面建立一個 Docker 配置檔 vim docker-compose.yml
。
▲ 接著將配置資訊貼入該配置檔內,這邊我習慣用 VIM 來編輯檔案,離開儲存先 ESC,在打 :wq 後按 Enter 即可。配置資訊如下:
version: '3'
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: sqlserver
restart: always
environment:
- TZ=Asia/Taipei
- SA_PASSWORD=Password1234
- ACCEPT_EULA=Y
ports:
- "1434:1433"
volumes:
- ./mssql:/var/opt/mssql
這是一個 Docker Compose 檔案,用於定義和配置一個名為 sqlserver 的服務,該服務運行的是 Microsoft SQL Server 2022 最新版本的容器。
逐一解釋每個部分:
version: '3':指定了 Docker Compose 檔案的版本。在這個例子中,使用的是版本 3。
services::定義了要運行的各個服務。
🈳sqlserver::定義了一個名為 sqlserver 的服務。
🈳🈳image: mcr.microsoft.com/mssql/server:2022-latest:指定了該服務所使用的 Docker 映像。這裡使用了 mcr.microsoft.com/mssql/server:2022-latest 映像,表示使用 Microsoft SQL Server 2022 的最新版本。
🈳🈳container_name: sqlserver:指定了容器的名稱為 sqlserver。
🈳🈳restart: always:設定容器在退出後總是自動重啟。
🈳🈳environment::定義了該服務運行時的環境變數。
🈳🈳🈳- TZ=Asia/Taipei:設定容器的時區為亞洲/台北時區。
🈳🈳🈳- SA_PASSWORD=Password1234:設定 SQL Server 的系統管理員 (sa) 密碼為 "Password1234"。請注意,這是一個示範密碼,實際使用時應該使用更強大和安全的密碼。
- ACCEPT_EULA=Y:接受 SQL Server 的使用者授權合約。
🈳🈳ports::定義了容器與主機之間的端口映射關係。
🈳🈳🈳- "1434:1433":將主機的 1434 端口映射到容器的 1433 端口。這樣,可以通過主機的 1434 端口訪問容器內運行的 SQL Server。
🈳🈳volumes::定義了容器與主機之間的目錄或檔案映射關係。
🈳🈳🈳- ./mssql:/var/opt/mssql:將主機的 ./mssql 目錄映射到容器的 /var/opt/mssql 目錄。這樣,容器內的 SQL Server 將能夠訪問並持久化儲存數據到主機上的 ./mssql 目錄(這個子目錄就在 vim docker-compose.yml 旁邊)。
▲ 在 vim docker-compose.yml 所在目錄用 docker-compose up -d
將服務啟動,可用 docker ps
確認服務啟動狀況。這邊還請使用 sudo chown -R 10001 mssql 指令將 mssql 目錄及其內部所有檔案和子目錄的擁有者更改為 10001 為擁有者,這可以確保 MSSQL 正常啟動,不然很有可能會不斷重啟或啟動失敗。
▲ 接著就是用微軟提供的 SQL Server Management Studio (SSMS) 來測試能否連上資料庫囉!伺服器名稱「localhost,1434」(逗號前為位址、後為通訊埠[port]),驗證設為「SQL Server 驗證」,登入用「sa」,密碼就是剛剛配置檔內指定的「Password1234」。
▲ 成功登入!這樣在 Ubuntu 中的 MSSQL 就全部安裝完畢了,也已經能隨 Docker 啟動而自動啟動!
實際操作影音
▲ 影片欣賞《ᴴᴰ⁶⁰【萌芽娘教學】Ubuntu x Docker:安裝 MSSQL 不求人!快速安裝啟動教學》
留言區 / Comments
萌芽論壇