docker sql server安裝

肖祥發表於2024-08-18

概述

一般情況下,部署sql server,需要準備一臺windows server伺服器,然後再安裝sql server。

但是windows太耗費資源了,在docker中執行,是比較方便的。

硬體和軟體要求

要在 Docker 容器上安裝 SQL Server 2019,主機伺服器必須滿足以下要求:

  • 任何受支援的 Linux 分發版或 Windows 或 Mac 上裝有 Docker 引擎 1.8 或更高版本
  • 至少 2 GB 的記憶體
  • 2 GB 的磁碟空間

下載映象

docker hub地址:https://hub.docker.com/r/microsoft/mssql-server

目前最新版本是2022

docker pull mcr.microsoft.com/mssql/server:2022-latest

安裝sql server

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Y.saabcd@1234" -p 1433:1433 -e "MSSQL_PID=Evaluation" --name sqlpreview --hostname sqlpreview -d mcr.microsoft.com/mssql/server:2022-latest

引數說明:

引數 說明
-e "ACCEPT_EULA=Y" 將 ACCEPT_EULA 變數設定為任意值,以確認接受終端使用者許可協議。 SQL Server 映像>的必需設定。
-e "MSSQL_SA_PASSWORD=Y.saabcd@1234" 指定至少包含 8 個字元且符合密碼策略的強密碼。 SQL Server 映像的必需設定。
-e "MSSQL_COLLATION=<SQL_Server_collation>" 指定自定義 SQL Server 排序規則,而不使用預設值 SQL_Latin1_General_CP1_CI_AS。
-p 1433:1433 將主機環境中的 TCP 埠(第一個值)對映到容器中的 TCP 埠(第二個值)。 在此示例中,SQL Server 偵聽容器中的 TCP 1433,此容器埠隨後會對主機上的 TCP 埠 1433 公開。
--name sqlpreview 為容器指定一個自定義名稱,而不是使用隨機生成的名稱。 如果執行多個容器,則無法重複使用相同的名稱。
--hostname sqlpreview 用於顯式設定容器主機名。 如果未指定主機名,則主機名預設為容器 ID,這是隨機生成的系統 GUID。

注意:MSSQL_SA_PASSWORD必須符合密碼策略的強密碼,如果密碼太簡單,會導致啟動失敗。

如果Docker容器啟動報WARNING: IPv4 forwarding is disabled. Networking will not work

解決方法
開啟sysctl配置檔案/etc/sysctl.conf

新增如下程式碼

net.ipv4.ip_forward=1

重新整理配置

sysctl -p

檢視日誌

docker logs -f sqlpreview

執行成功應該會看到與下面類似的輸出:

...
2024-08-18 13:12:56.66 spid14s     Recovery is complete. This is an informational message only. No user action is required.
2024-08-18 13:12:56.77 spid24s     The default language (LCID 0) has been set for engine and full-text services.
2024-08-18 13:12:56.83 spid24s     The tempdb database has 2 data file(s).

相關文章