快速入門:使用 Docker 執行 SQL Server Linux 容器映射

適用于:SQL Server (所有支援的版本) - Linux

在本快速入門中,您將使用 Docker 來提取和執行 SQL Server 2017 (14.x) Linux 容器映射mssql-server-linux。 然後,您可以與 sqlcmd 連線,以建立您的第一個資料庫並執行查詢。

如需支援平臺的詳細資訊,請參閱Linux 上 SQL Server 2017 的版本資訊

提示

本快速入門會建立 SQL Server 2017 (14.x) 容器。 如果您想要為不同版本的 SQL Server建立 Linux 容器,請參閱本文的SQL Server 2019 (15.x) SQL Server 2022 (16.x) 版本。

在本快速入門中,您將使用 Docker 來提取並執行 SQL Server 2019 (15.x) Linux 容器映射mssql-server-linux。 然後,您可以與 sqlcmd 連線,以建立您的第一個資料庫並執行查詢。

如需支援平臺的詳細資訊,請參閱Linux 上 SQL Server 2019 的版本資訊

提示

本快速入門會建立 SQL Server 2019 (15.x) 容器。 如果您想要為不同版本的 SQL Server建立 Linux 容器,請參閱本文的SQL Server 2017 (14.x) SQL Server 2022 (16.x) 版本。

在本快速入門中,您將使用 Docker 來提取和執行 SQL Server 2022 (16.x) Linux 容器映射mssql-server-linux。 然後,您可以與 sqlcmd 連線,以建立您的第一個資料庫並執行查詢。

如需支援平臺的詳細資訊,請參閱Linux 上 SQL Server 2022 (16.x) 的版本資訊

提示

本快速入門會建立 SQL Server 2022 (16.x) 容器。 如果您想要為不同版本的 SQL Server建立 Linux 容器,請參閱本文的SQL Server 2017 (14.x) SQL Server 2019 (15.x) 版本。

此映射包含以 Ubuntu 20.04 為基礎的 Linux 上執行的SQL Server。 它可與 Linux 上的 Docker Engine 1.8+ 搭配使用。

本文中的範例會使用 docker 命令。 不過,其中大部分的命令也適用于 Podman。 Podman 提供類似于 Docker 引擎的命令列介面。 您可以 深入瞭解 Podman

必要條件

提取並執行 SQL Server Linux 容器映射

開始下列步驟之前,請確定您已在本文頂端選取慣用的殼層 (bashPowerShellcmd) 。

  1. 從 Microsoft Container Registry 提取 SQL Server 2017 (14.x) Linux 容器映射。

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

    提示

    本快速入門會建立 SQL Server 2017 (14.x) 容器。 如果您想要為不同版本的 SQL Server建立 Linux 容器,請參閱本文的SQL Server 2019 (15.x) SQL Server 2022 (16.x) 版本。

    上一個命令會提取最新的 SQL Server 2017 (14.x) Linux 容器映射。 如果您想要提取特定影像,您可以新增冒號和標籤名稱,例如 mcr.microsoft.com/mssql/server:2017-GA-ubuntu 。 若要查看所有可用的映像,請參閱 mssql-server Docker Hub 頁面

    本文中的 Bash 命令會使用 sudo。 如果您不想用來 sudo 執行 Docker,您可以設定 docker 群組,並將使用者新增至該群組。 如需詳細資訊,請參閱 Post-installation steps for Linux (適用於 Linux 的安裝後步驟)。

  2. 若要使用 Docker 執行 Linux 容器映射,您可以從 bash 殼層或提升許可權的 PowerShell 命令提示字元使用下列命令。

    重要

    SA_PASSWORD環境變數已被取代。 請改用 MSSQL_SA_PASSWORD

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

    注意

    若正在使用 PowerShell Core,請將雙引號取代為單引號。

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

    您的密碼應遵循SQL Server預設密碼原則,否則容器無法設定SQL Server,而且將會停止運作。 根據預設,密碼長度必須至少為八個字元,且包含下列四組的三個字元:大寫字母、小寫字母、基底 10 位數和符號。 您可以使用 命令來檢查錯誤記錄 docker logs 檔。

    根據預設,本快速入門會使用開發人員版本的 SQL Server 建立容器。 在容器中執行生產版本的程序將有些微差異。 如需詳細資訊,請參閱執行生產容器映像

    下表提供了前述 docker run 範例的參數描述:

    參數 描述
    -e "ACCEPT_EULA=Y" ACCEPT_EULA 變數設定為任何值,以確認您接受End-User授權合約。 此為 SQL Server 映像的必要設定。
    -e 「MSSQL_SA_PASSWORD= < YourStrong@Passw0rd > 」 指定至少八個字元且符合SQL Server密碼需求的強式密碼。 此為 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 sql1 為容器指定自訂名稱,而不使用隨機產生的名稱。 如果您執行多個容器,就無法重複使用這個相同的名稱。
    --hostname sql1 用來明確設定容器主機名稱。 如果您未指定主機名稱,它會預設為容器識別碼,這是隨機產生的系統 GUID。
    -d 在背景 (精靈) 執行容器。
    mcr.microsoft.com/mssql/server:2017-latest SQL Server Linux 容器映射。
  3. 若要檢視 Docker 容器,請使用 docker ps 命令。

    sudo docker ps -a
    
    docker ps -a
    
    docker ps -a
    

    您應該會看到如下輸出:

    CONTAINER ID   IMAGE                                        COMMAND                    CREATED         STATUS         PORTS                                       NAMES
    d4a1999ef83e   mcr.microsoft.com/mssql/server:2017-latest   "/opt/mssql/bin/perm..."   2 minutes ago   Up 2 minutes   0.0.0.0:1433->1433/tcp, :::1433->1433/tcp   sql1
    
  4. 如果資料 STATUS 行顯示 的狀態 Up ,則SQL Server正在容器中執行,並接聽資料行中指定的 PORTS 埠。 STATUS如果SQL Server容器的資料行顯示 Exited ,請參閱設定指南的疑難排解一節。 一旦SQL Server錯誤記錄顯示訊息,伺服器便已準備好連線: SQL Server is now ready for client connections. This is an informational message; no user action is required 。 您可以使用 命令,在容器內檢閱SQL Server錯誤記錄檔:

    docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
    

    如上述所述,參數 --hostname 會將容器的內部名稱變更為自訂值。 此值是您會在下列 Transact-SQL 查詢中看到傳回的名稱:

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

    建議您將 --hostname--name 設為相同的值,這會讓識別目標容器更輕鬆。

  5. 因為 MSSQL_SA_PASSWORD 會顯示在 ps -eax 輸出,且儲存在相同名稱的環境變數中,所以最後一個步驟是變更您的 SA 密碼。 請參閱下方步驟。

提取並執行 SQL Server Linux 容器映射

開始執行下列步驟之前,請確定您已選取本文頂端的慣用殼層 (bashPowerShellcmd)

  1. 從 Microsoft Container Registry 提取 SQL Server 2019 (15.x) Linux 容器映射。

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

    提示

    本快速入門會建立 SQL Server 2019 (15.x) 容器。 如果您想要為不同版本的 SQL Server建立 Linux 容器,請參閱本文的SQL Server 2017 (14.x) SQL Server 2022 (16.x) 版本。

    上述命令會提取最新的 SQL Server 2019 (15.x) Linux 容器映射。 如果您想要提取特定影像,請新增冒號和標籤名稱,例如 mcr.microsoft.com/mssql/server:2019-GA-ubuntu 。 若要查看所有可用的映像,請參閱 mssql-server Docker Hub 頁面

    本文中的 Bash 命令會使用 sudo。 如果您不想使用 sudo 來執行 Docker,您可以設定 docker 群組,並將使用者新增至該群組。 如需詳細資訊,請參閱 Post-installation steps for Linux (適用於 Linux 的安裝後步驟)。

  2. 若要使用 Docker 執行 Linux 容器映射,您可以從 Bash 殼層或提升許可權的 PowerShell 命令提示字元使用下列命令。

    重要

    SA_PASSWORD環境變數已被取代。 請改用 MSSQL_SA_PASSWORD

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

    注意

    若正在使用 PowerShell Core,請將雙引號取代為單引號。

    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 --hostname sql1 `
       -d `
       mcr.microsoft.com/mssql/server:2019-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 --hostname sql1 `
       -d `
       mcr.microsoft.com/mssql/server:2019-latest
    

    您的密碼應遵循SQL Server預設密碼原則,否則容器無法設定SQL Server且會停止運作。 根據預設,密碼長度必須至少為 8 個字元,且包含下列四組之三的字元:大寫字母、小寫字母、基底 10 位數和符號。 您可以使用 命令來檢查錯誤記錄 docker logs 檔。

    根據預設,本快速入門會使用開發人員版本的 SQL Server 建立容器。 在容器中執行生產版本的程序將有些微差異。 如需詳細資訊,請參閱執行生產容器映像

    下表提供了前述 docker run 範例的參數描述:

    參數 描述
    -e "ACCEPT_EULA=Y" ACCEPT_EULA 變數設定為任何值,以確認您接受End-User授權合約。 此為 SQL Server 映像的必要設定。
    -e 「MSSQL_SA_PASSWORD= < YourStrong@Passw0rd > 」 指定至少八個字元且符合SQL Server密碼需求的強式密碼。 此為 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 sql1 為容器指定自訂名稱,而不使用隨機產生的名稱。 如果您執行多個容器,就無法重複使用這個相同的名稱。
    --hostname sql1 用來明確設定容器主機名稱。 如果您未指定主機名稱,則會預設為容器識別碼,這是隨機產生的系統 GUID。
    -d 在背景 (精靈) 中執行容器。
    mcr.microsoft.com/mssql/server:2019-latest SQL Server Linux 容器映射。
  3. 若要檢視 Docker 容器,請使用 docker ps 命令。

    sudo docker ps -a
    
    docker ps -a
    
    docker ps -a
    

    您應該會看到如下輸出:

    CONTAINER ID   IMAGE                                        COMMAND                    CREATED         STATUS         PORTS                                       NAMES
    d4a1999ef83e   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm..."   2 minutes ago   Up 2 minutes   0.0.0.0:1433->1433/tcp, :::1433->1433/tcp   sql1
    
  4. 如果資料 STATUS 行顯示 的狀態 Up 為 ,則SQL Server正在容器中執行,並接聽資料行中指定的 PORTS 埠。 如果SQL Server容器的資料 STATUS 行顯示 Exited ,請參閱設定指南的疑難排解一節。 一旦SQL Server錯誤記錄顯示下列訊息,伺服器便已準備好連線: SQL Server is now ready for client connections. This is an informational message; no user action is required 。 您可以使用 命令,在容器內檢閱SQL Server錯誤記錄檔:

    docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
    

    如上所述,參數 --hostname 會將容器的內部名稱變更為自訂值。 此值是您將在下列 Transact-SQL 查詢中看到的名稱:

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

    建議您將 --hostname--name 設為相同的值,這會讓識別目標容器更輕鬆。

  5. 因為 MSSQL_SA_PASSWORD 會顯示在 ps -eax 輸出,且儲存在相同名稱的環境變數中,所以最後一個步驟是變更您的 SA 密碼。 請參閱下方步驟。

提取並執行 SQL Server Linux 容器映射

開始執行下列步驟之前,請確定您已選取本文頂端的慣用殼層 (bashPowerShellcmd)

  1. 從 Microsoft Container Registry 提取 SQL Server 2022 (16.x) Linux 容器映射。

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

    提示

    本快速入門會建立 SQL Server 2022 (16.x) 容器。 如果您想要為不同版本的 SQL Server 建立 Linux 容器,請參閱本文的SQL Server 2017 (14.x) SQL Server 2019 (15.x) 版本。

    上述命令會提取最新的 SQL Server 2022 (16.x) Linux 容器映射。 如果您想要提取特定影像,請新增冒號和標籤名稱,例如 mcr.microsoft.com/mssql/server:2022-GA-ubuntu 。 若要查看所有可用的映像,請參閱 mssql-server Docker Hub 頁面

    本文中的 Bash 命令會使用 sudo。 如果您不想使用 sudo 來執行 Docker,您可以設定 docker 群組,並將使用者新增至該群組。 如需詳細資訊,請參閱 Post-installation steps for Linux (適用於 Linux 的安裝後步驟)。

  2. 若要使用 Docker 執行 Linux 容器映射,您可以從 Bash 殼層或提升許可權的 PowerShell 命令提示字元使用下列命令。

    重要

    SA_PASSWORD環境變數已被取代。 請改用 MSSQL_SA_PASSWORD

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

    注意

    若正在使用 PowerShell Core,請將雙引號取代為單引號。

    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 --hostname sql1 `
       -d `
       mcr.microsoft.com/mssql/server:2022-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 --hostname sql1 `
       -d `
       mcr.microsoft.com/mssql/server:2022-latest
    

    您的密碼應遵循SQL Server預設密碼原則,否則容器無法設定SQL Server且會停止運作。 根據預設,密碼長度必須至少為 8 個字元,且包含下列四組之三的字元:大寫字母、小寫字母、基底 10 位數和符號。 您可以使用 命令來檢查錯誤記錄 docker logs 檔。

    根據預設,本快速入門會使用開發人員版本的 SQL Server 建立容器。 在容器中執行生產版本的程序將有些微差異。 如需詳細資訊,請參閱執行生產容器映像

    下表提供了前述 docker run 範例的參數描述:

    參數 描述
    -e "ACCEPT_EULA=Y" ACCEPT_EULA 變數設定為任何值,以確認您接受End-User授權合約。 此為 SQL Server 映像的必要設定。
    -e 「MSSQL_SA_PASSWORD= < YourStrong@Passw0rd > 」 指定至少八個字元且符合SQL Server密碼需求的強式密碼。 此為 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 sql1 為容器指定自訂名稱,而不使用隨機產生的名稱。 如果您執行多個容器,就無法重複使用這個相同的名稱。
    --hostname sql1 用來明確設定容器主機名稱。 如果您未指定主機名稱,則會預設為容器識別碼,這是隨機產生的系統 GUID。
    -d 在背景 (精靈) 中執行容器。
    mcr.microsoft.com/mssql/server:2022-latest SQL Server Linux 容器映射。
  3. 若要檢視 Docker 容器,請使用 docker ps 命令。

    sudo docker ps -a
    
    docker ps -a
    
    docker ps -a
    

    您應該會看到如下輸出:

    CONTAINER ID   IMAGE                                        COMMAND                    CREATED         STATUS         PORTS                                       NAMES
    d4a1999ef83e   mcr.microsoft.com/mssql/server:2022-latest   "/opt/mssql/bin/perm..."   2 minutes ago   Up 2 minutes   0.0.0.0:1433->1433/tcp, :::1433->1433/tcp   sql1
    
  4. 如果資料 STATUS 行顯示 的狀態 Up 為 ,則SQL Server正在容器中執行,並接聽資料行中指定的 PORTS 埠。 如果SQL Server容器的資料 STATUS 行顯示 Exited ,請參閱設定指南的疑難排解一節。 一旦SQL Server錯誤記錄顯示下列訊息,伺服器便已準備好連線: SQL Server is now ready for client connections. This is an informational message; no user action is required 。 您可以使用 命令,在容器內檢閱SQL Server錯誤記錄檔:

    docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
    

    如上所述,參數 --hostname 會將容器的內部名稱變更為自訂值。 此值是您將在下列 Transact-SQL 查詢中看到的名稱:

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

    建議您將 --hostname--name 設為相同的值,這會讓識別目標容器更輕鬆。

  5. 因為 MSSQL_SA_PASSWORD 會顯示在 ps -eax 輸出,且儲存在相同名稱的環境變數中,所以最後一個步驟是變更您的 SA 密碼。 請參閱下方步驟。

變更系統管理員密碼

SA 帳戶是在安裝期間建立的 SQL Server 執行個體系統管理員。 在您建立 SQL Server 容器之後,在容器中執行 echo $MSSQL_SA_PASSWORD,即可探索您指定的 MSSQL_SA_PASSWORD 環境變數。 基於安全性考量,請變更您的 SA 密碼。

  1. 選擇要為 SA 使用者使用的強式密碼。

  2. 使用 docker exec 來執行 sqlcmd,以使用 Transact-SQL 變更密碼。 在下列範例中,會從使用者輸入讀取舊密碼和新密碼。

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
    -S localhost -U SA \
     -P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \
     -Q "ALTER LOGIN SA WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
    
  1. 選擇要為 SA 使用者使用的強式密碼。

  2. 在下列範例中,將舊密碼 <YourStrong@Passw0rd> 和新密碼 <YourNewStrong@Passw0rd> 取代為您自己的密碼值。

    docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `
       -S localhost -U SA -P "<YourStrong@Passw0rd>" `
       -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
    
  1. 選擇要為 SA 使用者使用的強式密碼。

  2. 在下列範例中,將舊密碼 <YourStrong@Passw0rd> 和新密碼 <YourNewStrong@Passw0rd> 取代為您自己的密碼值。

    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。

  1. 使用 docker exec -it 命令在您執行的容器中啟動互動式 Bash 殼層。 下列範例中的 sql1 是您在建立容器時由 --name 參數指定的名稱。

    sudo docker exec -it sql1 "bash"
    
    docker exec -it sql1 "bash"
    
    docker exec -it sql1 "bash"
    
  2. 一旦在容器內,請使用其完整路徑,以 sqlcmd 在本機連線。

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

    提示

    您可以在命令列中省略密碼,不要在提示時輸入密碼。 以下為範例:

      /opt/mssql-tools/bin/sqlcmd -S localhost -U SA
    
  3. 如果成功,您應該會收到 sqlcmd 命令提示字元:1>

建立及查詢資料

下列各節將逐步引導使用 sqlcmd 和 Transact-SQL 來建立新資料庫、新增資料及執行查詢。

建立新資料庫

下列步驟會建立名為 TestDB 的新資料庫。

  1. sqlcmd 命令提示字元,貼上下列 Transact-SQL 命令以建立測試資料庫:

    CREATE DATABASE TestDB;
    
  2. 在下一行,撰寫查詢以傳回您伺服器上所有資料庫的名稱:

    SELECT Name from sys.databases;
    
  3. 先前的兩個命令不會立即執行。 在新行上輸入 GO ,以執行先前的命令:

    GO
    

插入資料

接下來,建立新的資料表 Inventory,然後插入兩個新的資料列。

  1. sqlcmd 命令提示字元,將內容切換至 TestDB 資料庫:

    USE TestDB;
    
  2. 建立名為 Inventory 的新資料表:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT);
    
  3. 將資料插入新的資料表:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. 輸入 GO 以執行先前的命令:

    GO
    

選取資料

現在,執行查詢以從 Inventory 資料表傳回資料。

  1. sqlcmd 命令提示字元,輸入查詢以從 Inventory 資料表傳回 quantity (數量) 大於 152 的資料列:

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

    GO
    

結束 sqlcmd 命令提示字元

  1. 若要結束您的 sqlcmd 工作階段,請鍵入 QUIT

    QUIT
    
  2. 若要結束容器中的互動式命令提示字元,請鍵入 exit。 結束互動式 Bash 殼層後,容器會繼續執行。

從容器外部連線

您也可以從支援 SQL 連線的任何外部 Linux、Windows 或 macOS 工具連線到 Docker 機器上的 SQL Server 執行個體。

下列步驟在您容器的外部使用了 sqlcmd 以連線至容器中執行的 SQL Server。 這些步驟會假設您已經在容器外部安裝 SQL Server 命令列工具。 使用其他工具時亦適用相同原則,但各工具的連線程序不盡相同。

  1. 使用 ifconfigip addr ,尋找容器主機電腦的 IP 位址。

  2. 針對此範例,請在您的用戶端電腦上安裝 sqlcmd 工具。 如需詳細資訊,請參閱在 Windows 上安裝sqlcmd或在Linux 上安裝sqlcmd

  3. 執行 sqlcmd ,指定 IP 位址,以及對應至容器中埠 1433 的埠。 在此範例中,埠與主機電腦上的埠 1433 相同。 如果您在主機電腦上指定了不同的對應連接埠,您可以在這裡使用該連接埠。 您也必須在防火牆上開啟適當的輸入埠,以允許連線。

    sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"
    
    sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"
    
    sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"
    
  4. 執行 Transact-SQL 命令。 完成後,鍵入 QUIT

其他常用的 SQL Server 連線工具包括:

移除容器

若要移除本教學課程中用到的 SQL Server 容器,請執行下列命令:

sudo docker stop sql1
sudo docker rm sql1
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1

警告

停止及移除容器會永久刪除容器中的所有 SQL Server 資料。 如須保留資料,請建立備份檔案並將其複製到容器外,或使用容器資料持續性技術

Dock 示範

嘗試使用適用于 Docker 的 SQL Server Linux 容器映射之後,您可能想要知道如何使用 Docker 來改善開發和測試。 下方影片會示範如何在持續整合與部署案例中使用 Docker。

後續步驟

此外,也可以前往 mssql-docker GitHub 存放庫 取得資源、意見反應和已知問題。