欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker 部署 Microsoft SQL Server 完全指南

 更新時(shí)間:2025年08月23日 15:09:46   作者:FC_nian  
本文詳細(xì)介紹如何使用Docker快速部署Microsoft SQL Server,提供兩種主流方式,兩種方式都包含了數(shù)據(jù)持久化、資源限制等生產(chǎn)環(huán)境所需的配置,并提供了詳細(xì)的參數(shù)說(shuō)明和常見(jiàn)問(wèn)題解決方法,感興趣的朋友跟隨小編一起看看吧

部署方案對(duì)比

特性Docker 命令行方式Docker Compose 方式
適用場(chǎng)景快速測(cè)試、簡(jiǎn)單部署、臨時(shí)使用正式部署、復(fù)雜應(yīng)用、多環(huán)境配置、需要版本控制
配置管理單行命令,難以復(fù)用聲明式 YAML 文件,易于管理和版本控制
持久化需手動(dòng)指定主機(jī)絕對(duì)路徑支持命名卷和相對(duì)路徑,管理更方便
安全性密碼在命令歷史中可見(jiàn)可通過(guò) .env 文件隔離敏感信息
管理復(fù)雜度簡(jiǎn)單需要編寫(xiě) YAML 文件
擴(kuò)展性較差極佳,可輕松定義多服務(wù)應(yīng)用

一、Docker 命令行方式

這種方式直接使用 docker run 命令,適合快速測(cè)試和簡(jiǎn)單部署

1. 拉取官方鏡像

從 Microsoft Container Registry 拉取 SQL Server 2022 的最新 Linux 鏡像

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

  • 注意:如需其他版本(如 2019),將標(biāo)簽改為 :2019-latest

2. 創(chuàng)建本地?cái)?shù)據(jù)目錄(用于持久化)

為了避免容器刪除后數(shù)據(jù)丟失,需要在宿主機(jī)上創(chuàng)建一個(gè)目錄來(lái)映射容器內(nèi)的數(shù)據(jù)存儲(chǔ)位置

mkdir -p /usr/local/docker/sqlserver/data

3. 運(yùn)行容器命令(最關(guān)鍵的步驟)

docker run -d \
    --name sql-server \
    -e "ACCEPT_EULA=Y" \
    -e "MSSQL_SA_PASSWORD=sqlserver@7740" \
    -e "MSSQL_PID=Developer" \
    -p 1433:1433 \
    -v /usr/local/docker/sqlserver/data:/var/opt/mssql \
    --memory="4g" \
    --restart unless-stopped \
    --user root \
    mcr.microsoft.com/mssql/server:2019-latest

3.1 參數(shù)說(shuō)明表

參數(shù)說(shuō)明必要性
-d后臺(tái)運(yùn)行容器(守護(hù)模式)可選
--name sql-server指定容器名稱可選
-e "ACCEPT_EULA=Y"接受最終用戶許可協(xié)議必須
-e "MSSQL_SA_PASSWORD=..."設(shè)置sa用戶密碼(需符合復(fù)雜度要求)必須
-e "MSSQL_PID=Developer"指定版本(Developer/Express/Standard/Enterprise)可選
-p 1433:1433端口映射(主機(jī)端口:容器端口)必須
-v /host/path:/var/opt/mssql數(shù)據(jù)持久化掛載(主機(jī)路徑:容器路徑)推薦
--memory="4g"限制容器最大內(nèi)存使用推薦
--restart unless-stopped設(shè)置自動(dòng)重啟策略(除非手動(dòng)停止)推薦

3.2 密碼復(fù)雜度要求

  • 長(zhǎng)度至少8個(gè)字符
  • 包含以下字符類(lèi)型中的至少三種:
    • 大寫(xiě)字母(A-Z)
    • 小寫(xiě)字母(a-z)
    • 數(shù)字(0-9)
    • 特殊符號(hào)(如!@#$%^&*)

4. 檢查容器狀態(tài)

運(yùn)行后,使用以下命令查看容器是否成功啟動(dòng):

docker ps

  • 如果狀態(tài)(STATUS)顯示為 Up ...,則表示運(yùn)行成功。如果顯示為 Exited,說(shuō)明啟動(dòng)失敗,需要查看日志

5. 查看日志以排查問(wèn)題

錯(cuò)誤示例

docker logs sql-server
  • 常見(jiàn)啟動(dòng)失敗原因:
    1. 密碼不符合復(fù)雜性要求
    2. 沒(méi)有設(shè)置 ACCEPT_EULA=Y
    3. 宿主機(jī)端口已被占用(更改 -p 參數(shù)即可)
    4. 配置的掛載目錄沒(méi)有訪問(wèn)權(quán)限
      sudo chmod -R 777 /usr/local/docker/sqlserver/data

6. 連接測(cè)試

容器運(yùn)行后,你可以使用任何客戶端工具連接

  • 服務(wù)器: ip
  • 身份驗(yàn)證: SQL Server 身份驗(yàn)證
  • 登錄名: sa
  • 密碼: 你在 MSSQL_SA_PASSWORD 中設(shè)置的密碼
  • 端口: 如果你映射的是 1433,直接使用即可

常用管理命令:

*  停止容器: docker stop sql-server
*  啟動(dòng)容器: docker start sql-server
*  重啟容器: docker restart sql-server
*  進(jìn)入容器內(nèi)部bash: docker exec -it sql-server bash
*  刪除容器 (?? **會(huì)丟失未持久化的數(shù)據(jù)**): docker rm -f sql-server

二、Docker Compose 方式

這種方式使用一個(gè) docker-compose.yml 文件來(lái)聲明所有配置,更清晰、易于版本控制和復(fù)用,特別適合復(fù)雜應(yīng)用和多環(huán)境部署

1. 創(chuàng)建項(xiàng)目目錄和文件

cd /usr/local
sudo mkdir -p /docker/sql-server && cd /docker/sql-server
mkdir data && sudo chmod -R 777 data

2. 創(chuàng)建 docker-compose.yml 文件

需要提前創(chuàng)建docker網(wǎng)絡(luò):docker network create fc
使用文本編輯器創(chuàng)建該文件,并填入以下內(nèi)容:

services:
  mssql:
    image: mcr.microsoft.com/mssql/server:2019-latest
    container_name: sqlserver
    environment:
      - ACCEPT_EULA=Y
      - MSSQL_PID=Developer
      - MSSQL_SA_PASSWORD=sqlserver@7740
    ports:
      - "1433:1433"
    volumes:
      - mssql_data:/var/opt/mssql  # 使用命名卷
    restart: unless-stopped
    mem_limit: 4g
    mem_reservation: 2g
    cpus: 2.0
    networks:
      - fc
volumes:
  mssql_data:  # 定義命名卷
networks:
  fc:
    external: true

配置項(xiàng)說(shuō)明表

配置項(xiàng)說(shuō)明示例值
image使用的Docker鏡像mcr.microsoft.com/mssql/server:2022-latest
environment環(huán)境變量配置ACCEPT_EULA=Y, MSSQL_SA_PASSWORD=...
ports端口映射配置"1433:1433"
volumes數(shù)據(jù)卷映射mssql_data:/var/opt/mssql
mem_limit內(nèi)存限制4g
networks網(wǎng)絡(luò)配置自定義橋接網(wǎng)絡(luò)

(可選)創(chuàng)建 .env 文件管理敏感信息
為了避免將密碼硬編碼在 YAML 文件中,可以創(chuàng)建一個(gè) .env 文件(與 docker-compose.yml 同目錄):

# .env file
MSSQL_SA_PASSWORD=sqlserver@7740

然后修改 docker-compose.yml 中的 MSSQL_SA_PASSWORD 一行:

- MSSQL_SA_PASSWORD=${MSSQL_SA_PASSWORD}

或者

env_file:
  - .env  # 將密碼移出docker-compose文件

Docker Compose 會(huì)自動(dòng)讀取同目錄下的 .env 文件并注入變量

3. 啟動(dòng)容器

啟動(dòng)容器前,注意開(kāi)放防火墻端口:

# 如果使用 firewalld
sudo firewall-cmd --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

然后在包含 docker-compose.yml 文件的目錄下,執(zhí)行:

docker compose up -d

  • -d 同樣表示在后臺(tái)運(yùn)行
  • 這個(gè)命令會(huì)自動(dòng)拉取鏡像(如果本地沒(méi)有)、創(chuàng)建定義的卷、網(wǎng)絡(luò),并啟動(dòng)所有服務(wù)

總結(jié)

特性Docker 命令行方式Docker Compose 方式
適用場(chǎng)景快速測(cè)試、單次運(yùn)行、簡(jiǎn)單任務(wù)正式部署、復(fù)雜應(yīng)用、多環(huán)境、需要版本控制
配置管理長(zhǎng)長(zhǎng)的命令,難以記錄和復(fù)用清晰的 YAML 文件,易于閱讀、版本管理和共享
持久化需手動(dòng)指定主機(jī)絕對(duì)路徑可使用相對(duì)路徑(如 ./data),管理更方便
安全性密碼在命令歷史中可見(jiàn)可通過(guò) .env 文件隔離敏感信息,更安全
管理命令docker start/stop/rm <name>docker-compose up/down/start/stop (基于項(xiàng)目)
資源限制run 命令中直接指定在 YAML 文件中聲明
擴(kuò)展性差,運(yùn)行多個(gè)相關(guān)容器很麻煩極佳,可以輕松定義多服務(wù)應(yīng)用(如 App + DB)

PS:如果遇到數(shù)據(jù)卷掛載權(quán)限問(wèn)題,可以選擇使用user:root 或者直接創(chuàng)建數(shù)據(jù)卷由docker自動(dòng)管理

到此這篇關(guān)于Docker 部署 Microsoft SQL Server 指南的文章就介紹到這了,更多相關(guān)Docker 部署 Microsoft SQL Server內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker build創(chuàng)建鏡像命令示例實(shí)踐

    Docker build創(chuàng)建鏡像命令示例實(shí)踐

    本文講解Dockerfile的核心概念、基礎(chǔ)指令、構(gòu)建流程及優(yōu)化技巧,涵蓋鏡像層結(jié)構(gòu)、構(gòu)建上下文、常用命令參數(shù),強(qiáng)調(diào)多階段構(gòu)建、輕量鏡像等最佳實(shí)踐,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • Docker 批量刪除容器或鏡像的操作方法

    Docker 批量刪除容器或鏡像的操作方法

    這篇文章主要介紹了Docker 批量刪除容器或鏡像的操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)

    docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)

    Vaultwarden是一個(gè)開(kāi)源的密碼管理器,它提供了類(lèi)似于Bitwarden的功能,允許用戶安全地存儲(chǔ)和管理密碼、敏感數(shù)據(jù)和身份信息,本文主要介紹了docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn),感興趣的可以了解一下
    2023-10-10
  • Docker?配置容器固定IP的方法

    Docker?配置容器固定IP的方法

    這篇文章主要介紹了Docker?配置容器固定IP,下面使用docker自帶的network實(shí)現(xiàn)固定ip分配,并且重啟不會(huì)消失,通過(guò)綁定步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-04-04
  • Windows下使用Docker部署Qdrant向量庫(kù)鏡像服務(wù)詳細(xì)教學(xué)

    Windows下使用Docker部署Qdrant向量庫(kù)鏡像服務(wù)詳細(xì)教學(xué)

    在?Windows?系統(tǒng)上直接安裝?Qdrant?服務(wù)環(huán)境時(shí),可能會(huì)因?yàn)橐蕾嚮驒?quán)限等問(wèn)題導(dǎo)致安裝失敗,這時(shí)可以借助?Docker?容器來(lái)部署?Qdrant?服務(wù),下面就跟隨小編一起來(lái)看看具體操作步驟吧
    2025-06-06
  • Docker Machine是什么?

    Docker Machine是什么?

    Docker Machine是什么?這篇文章主要介紹了Docker官方提供的一個(gè)工具Docker Machine,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Docker下MySQL配置文件不生效的解決方法(超全面!)

    Docker下MySQL配置文件不生效的解決方法(超全面!)

    在Docker中運(yùn)行MySQL并遇到需要調(diào)整配置的情況時(shí),比如想要關(guān)閉ONLY_FULL_GROUP_BY的嚴(yán)格模式,我們可以通過(guò)以下步驟來(lái)實(shí)現(xiàn)sql_mode的修改:以下是解決此類(lèi)問(wèn)題的步驟和思路,需要的朋友可以參考下
    2024-09-09
  • Docker鏡像管理常用操作代碼示例

    Docker鏡像管理常用操作代碼示例

    這篇文章主要介紹了Docker鏡像管理常用操作代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • docker終端中如何修改時(shí)區(qū)

    docker終端中如何修改時(shí)區(qū)

    解決Docker時(shí)區(qū)問(wèn)題需檢查容器是否包含Shanghai時(shí)區(qū)文件,若無(wú)則從主機(jī)復(fù)制,通過(guò)命令驗(yàn)證時(shí)區(qū)設(shè)置,確保正確,總結(jié)為個(gè)人經(jīng)驗(yàn),供他人參考
    2025-07-07
  • Docker基礎(chǔ)和常用命令詳解

    Docker基礎(chǔ)和常用命令詳解

    這篇文章主要介紹了Docker基礎(chǔ)和常用命令方法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11

最新評(píng)論