日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

快速入门:使用 Docker 运行 SQL Server 容器映像

發布時間:2025/3/16 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速入门:使用 Docker 运行 SQL Server 容器映像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Choose your command shell

BashPowerShellCmd

適用對象:SQL Server(僅限 Linux)Azure SQL 數據庫?Azure SQL 數據倉庫?并行數據倉庫

在本快速入門教程中,你使用 Docker 請求和運行 SQL Server 2017 容器映像?mssql server linux。?然后使用?sqlcmd?連接,以創建第一個數據庫并運行查詢。

?提示

若要試用 SQL Server 2019 預覽版映像,請參閱本文的 SQL Server 2019 預覽版。

此映像包含在 Linux 上運行的 SQL Server(基于 Ubuntu 16.04)。?它可與 Linux 上或用于 Mac/Windows 的 Docker 上的 Docker 引擎 1.8+ 配合使用。?本快速入門專門介紹?linux?上 SQL Server 映像的使用。?雖然未介紹 Windows 映像,但可在?mssql-server-windows-developer Docker 中心頁上找到關于它的詳細信息。

?

先決條件

  • 任何受支持的 Linux 分發版上或用于 Mac/Windows 的 Docker 上的 Docker 引擎 1.8+。?有關詳細信息,請參閱?Install Docker(安裝 Docker)。
  • Docker?overlay2?存儲驅動程序。?這是大多數用戶的默認設置。?如果發現自己未使用此存儲提供程序并且需要進行更改,請參閱?docker 文檔中有關配置 overlay2?的說明和警告。
  • 至少 2 GB 的磁盤空間。
  • 至少 2 GB 的 RAM。
  • Linux 上的 SQL Server 的系統要求。

拉取并運行容器映像

在開始執行以下步驟之前,請確保已在本文頂部選擇了首選的 shell(bash、PowerShell 或 cmd)。

  • 從 Microsoft 容器注冊表中拉取 SQL Server 2017 Linux 容器映像。

    bash復制

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

    ?提示

    若要試用 SQL Server 2019 預覽版映像,請參閱本文的 SQL Server 2019 預覽版。

    前一個命令請求最新的 SQL Server 2017 容器映像。?如果想請求某個特定映像,需添加一個冒號和標記名稱(例如?mcr.microsoft.com/mssql/server:2017-GA-ubuntu。?若要查看所有可用映像,請參閱?mssql-server Docker hub 頁。

    對于本文中的 bash 命令,將使用?sudo。?在 MacOS 上,可能不需要?sudo。?在 Linux 上,如果不想使用?sudo?來運行 Docker,可以配置一個?docker?組,并將用戶添加到該組。?有關詳細信息,請參閱?Post-installation steps for Linux(適用于 Linux 的安裝后步驟)。

  • 要使用 Docker 運行容器映像,可以從 Bash Shell (Linux/macOS) 或提升的 PowerShell 命令提示符使用以下命令。

    bash復制

    sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \-p 1433:1433 --name sql1 \-d mcr.microsoft.com/mssql/server:2017-latest

    ?備注

    密碼應符合 SQL Server 默認密碼策略,否則容器無法設置 SQL Server,將停止工作。?默認情況下,密碼的長度必須至少為 8 個字符,并且必須包含以下四種字符中的三種:大寫字母、小寫字母、十進制數字和符號。?你可以通過執行?docker logs命令檢查錯誤日志。

    ?備注

    默認情況下,這會創建一個使用 SQL Server 2017 開發人員版的容器。?在容器中運行生產版本的過程略有不同。?有關詳細信息,請參閱運行生產容器映像。

    下表對前一個?docker run?示例中的參數進行了說明:

    參數描述
    -e 'ACCEPT_EULA=Y'將?ACCEPT_EULA?變量設置為任意值,以確認接受最終用戶許可協議。?SQL Server 映像的必需設置。
    -e 'SA_PASSWORD=<YourStrong!Passw0rd>'指定至少包含 8 個字符且符合?SQL Server 密碼要求的強密碼。?SQL Server 映像的必需設置。
    -p 1433:1433將主機環境中的 TCP 端口(第一個值)映射到容器中的 TCP 端口(第二個值)。?在此示例中,SQL Server 偵聽容器中的 TCP 1433,并對主機上的端口 1433 公開。
    --name sql1為容器指定一個自定義名稱,而不是使用隨機生成的名稱。?如果運行多個容器,則無法重復使用相同的名稱。
    mcr.microsoft.com/mssql/server:2017-latestSQL Server 2017 Linux 容器映像。
  • 要查看 Docker 容器,請使用?docker ps?命令。

    bash復制

    sudo docker ps -a

    應會看到與以下屏幕截圖類似的輸出:

  • 如果“狀態”列顯示“正常運行”,則 SQL Server 將在容器中運行,并偵聽“端口”列中指定的端口 。?如果 SQL Server 容器的“狀態”列顯示“已退出”,則參閱配置指南的疑難解答部分?。

  • -h(主機名)參數也非常有用,但為了簡單起見,本教程中不使用它。?這會將容器的內部名稱更改為一個自定義值。?也就是以下 Transact-SQL 查詢中返回的名稱:

    SQL復制

    SELECT @@SERVERNAME,SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),SERVERPROPERTY('MachineName'),SERVERPROPERTY('ServerName')

    將?-h?和?--name?設為相同的值是一種很好的方法,可以輕松地識別目標容器。

    更改 SA 密碼

    SA 帳戶是安裝過程中在 SQL Server 實例上創建的系統管理員。?創建 SQL Server 容器后,通過在容器中運行?echo $SA_PASSWORD,可發現指定的?SA_PASSWORD?環境變量。?出于安全考慮,請考慮更改 SA 密碼。

  • 選擇 SA 用戶要使用的強密碼。

  • 使用?docker exec?運行sqlcmd ,以使用 Transact-SQL 更改密碼。?在下面的示例中,將舊密碼?<YourStrong!Passw0rd>?和新密碼?<YourNewStrong!Passw0rd>?替換為你自己的密碼值。

    bash復制

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \-S localhost -U SA -P "<YourStrong!Passw0rd>" \-Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong!Passw0rd>"'
  • 連接到 SQL Server

    下列步驟在容器內部使用 SQL Server 命令行工具?sqlcmd?來連接 SQL Server。

  • 使用?docker exec -it?命令在運行的容器內部啟動交互式 Bash Shell。?在下面的示例中,sql1?是在創建容器時由?--name?參數指定的名稱。

    bash復制

    sudo docker exec -it sql1 "bash"
  • 在容器內部使用 sqlcmd 進行本地連接。?默認情況下,sqlcmd 不在路徑之中,因此需要指定完整路徑。

    bash復制

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong!Passw0rd>"

    ?提示

    可以省略命令行上提示要輸入的密碼。

  • 如果成功,應會顯示 sqlcmd 命令提示符:1>。

  • 創建和查詢數據

    以下部分將引導你使用 sqlcmd 和 Transact-SQL 完成新建數據庫、添加數據并運行簡單查詢的整個過程。

    新建數據庫

    以下步驟創建一個名為?TestDB?的新數據庫。

  • 在 sqlcmd 命令提示符中,粘貼以下 Transact-SQL 命令以創建測試數據庫:

    SQL復制

    CREATE DATABASE TestDB
  • 在下一行中,編寫一個查詢以返回服務器上所有數據庫的名稱:

    SQL復制

    SELECT Name from sys.Databases
  • 前兩個命令沒有立即執行。?必須在新行中鍵入?GO?才能執行以前的命令:

    SQL復制

    GO
  • 插入數據

    接下來創建一個新表?Inventory,然后插入兩個新行。

  • 在 sqlcmd 命令提示符中,將上下文切換到新的?TestDB?數據庫:

    SQL復制

    USE TestDB
  • 創建名為?Inventory?的新表:

    SQL復制

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
  • 將數據插入新表:

    SQL復制

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
  • 要執行上述命令的類型?GO:

    SQL復制

    GO
  • 選擇數據

    現在,運行查詢以從?Inventory?表返回數據。

  • 通過 sqlcmd 命令提示符輸入查詢,以返回?Inventory?表中數量大于 152 的行:

    SQL復制

    SELECT * FROM Inventory WHERE quantity > 152;
  • 執行命令:

    SQL復制

    GO
  • 退出 sqlcmd 命令提示符

  • 要結束 sqlcmd 會話,請鍵入?QUIT:

    SQL復制

    QUIT
  • 要在容器中退出交互式命令提示,請鍵入?exit。?退出交互式 Bash Shell 后,容器將繼續運行。

  • 從容器外連接

    還可以從支持 SQL 連接的任何 Linux、Windows 或 macOS 外部工具連接到 Docker 計算機上的 SQL Server 實例。

    以下步驟在容器外使用?sqlcmd?連接在容器中運行的 SQL Server。?這些步驟假定你已在容器外安裝了 SQL Server 命令行工具。?使用其他工具時,同樣的原則依然適用,但連接過程因工具而異。

  • 查找承載容器的計算機的 IP 地址。?在 Linux 上,使用?ifconfig?或?ip addr。在 Windows 上,使用?ipconfig

  • 對于本示例,請在客戶端計算機上安裝?sqlcmd?工具。?有關詳細信息,請參閱在 Windows 上安裝 sqlcmd?或在 Linux 上安裝 sqlcmd。

  • 運行 sqlcmd,指定 IP 地址和映射容器中的端口 1433 的端口。?本例中為主機上的相同端口 1433。?如果在主機上指定了不同的映射端口,則在此處使用它。

    bash復制

    sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong!Passw0rd>"
  • 運行 Transact-SQL 命令。?完成后,鍵入?QUIT。

  • 連接到 SQL Server 的其他常見工具包括:

    • Visual Studio Code
    • 適用于 Windows 的 SQL Server Management Studio (SSMS)
    • Azure Data Studio
    • mssql-cli(預覽版)
    • PowerShell Core

    刪除容器

    如果想刪除本教程中使用的 SQL Server 容器,請運行以下命令:

    bash復制

    sudo docker stop sql1 sudo docker rm sql1

    ?警告

    停止并永久刪除容器會刪除容器中的所有 SQL Server 數據。?如果你需要保留數據,請在容器外創建并復制備份文件或使用容器數據暫留技術。

    Docker 演示

    嘗試對 Docker 使用 SQL Server 容器映像后,你可能想知道如何 Docker 是如何用于改進開發和測試的。?下面的視頻介紹如何在持續集成和部署方案中使用 Docker。

    ?

    后續步驟

    有關如何將數據庫備份文件還原到容器中的教程,請參閱在 Linux Docker 容器中還原 SQL Server 數據庫。?若要瀏覽其他方案(例如運行多個容器、數據暫留和故障排除),請參閱在 Docker 上配置 SQL Server 容器映像。

    并且,請查看?mssql-docker GitHub 存儲庫,了解資源、反饋和已知問題。

    總結

    以上是生活随笔為你收集整理的快速入门:使用 Docker 运行 SQL Server 容器映像的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。