通過(guò) Docker 部署 Azure SQL Edge

來(lái)源: Microsoft
作者:Microsoft
時(shí)間:2021-02-25
17900
在本快速入門(mén)中,使用 Docker 拉取和運(yùn)行 Azure SQL Edge 容器映像。 然后使用 sqlcmd 連接,以創(chuàng)建第一個(gè)數(shù)據(jù)庫(kù)并運(yùn)行查詢。

在本快速入門(mén)中,使用 Docker 拉取和運(yùn)行 Azure SQL Edge 容器映像。 然后使用 sqlcmd 連接,以創(chuàng)建第一個(gè)數(shù)據(jù)庫(kù)并運(yùn)行查詢。

此映像包含基于 Ubuntu 18.04 的 Azure SQL Edge。 它可與 Linux 上或用于 Mac/Windows 的 Docker 上的 Docker 引擎 1.8+ 配合使用。

必備條件

·任何受支持的 Linux 分發(fā)或用于 Mac/Windows 的 Docker 上的 Docker 引擎 1.8+。 有關(guān)詳細(xì)信息,請(qǐng)參閱 Install Docker(安裝 Docker)。 由于 Azure SQL Edge 映像基于 Ubuntu 18.04,建議使用 Ubuntu 18.04 Docker 主機(jī)。

·Docker overlay2 存儲(chǔ)驅(qū)動(dòng)程序。 這是大多數(shù)用戶的默認(rèn)設(shè)置。 如果發(fā)現(xiàn)自己未使用此存儲(chǔ)提供程序并且需要進(jìn)行更改,請(qǐng)參閱 docker 文檔中有關(guān)配置 overlay2 的說(shuō)明和警告。

·至少 10 GB 的磁盤(pán)空間。

·至少 1 GB 的 RAM。

·Azure SQL Edge 的硬件要求。

拉取并運(yùn)行容器映像

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

1.從 Microsoft 容器注冊(cè)表中拉取 Azure SQL Edge 容器映像。

·拉取 Azure SQL Edge 容器映像

Bash

sudo docker pull mcr.microsoft.com/azure-sql-edge:latest 

 備注

對(duì)于本文中的 bash 命令,將使用 sudo。 在 macOS 和 windows 上,可能不需要 sudo。 在 Linux 上,如果不想使用 sudo 來(lái)運(yùn)行 Docker,可以配置一個(gè) docker 組,并將用戶添加到該組。 有關(guān)詳細(xì)信息,請(qǐng)參閱 Post-installation steps for Linux(適用于 Linux 的安裝后步驟)。

前面的命令將拉取最新的 Azure SQL Edge 容器映像。 若要查看所有可用映像,請(qǐng)參閱 azure-sql-egde Docker 中心頁(yè)。

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

·啟動(dòng)作為開(kāi)發(fā)人員版運(yùn)行的 Azure SQL Edge 實(shí)例

Bash

sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge

·啟動(dòng)作為高級(jí)版運(yùn)行的 Azure SQL Edge 實(shí)例

Bash

sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -e 'MSSQL_PID=Premium' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge

 備注

如果要在 Windows 上使用 PowerShell 運(yùn)行這些命令,請(qǐng)使用雙引號(hào)而不是單引號(hào)。

 備注

密碼應(yīng)符合 Microsoft SQL 數(shù)據(jù)庫(kù)引擎默認(rèn)密碼策略,否則容器無(wú)法設(shè)置 SQL 引擎,將停止工作。 默認(rèn)情況下,密碼的長(zhǎng)度必須至少為 8 個(gè)字符,并且必須包含以下四種字符中的三種:大寫(xiě)字母、小寫(xiě)字母、十進(jìn)制數(shù)字和符號(hào)。 你可以通過(guò)執(zhí)行 docker logs 命令檢查錯(cuò)誤日志。

下表對(duì)前一個(gè) docker run 示例中的參數(shù)進(jìn)行了說(shuō)明:

微信圖片_20210225114621.png

有關(guān)所有 Azure SQL Edge 環(huán)境變量的完整列表,請(qǐng)參閱使用環(huán)境變量配置 Azure SQL Edge。你還可以使用 mssql.conf 文件配置 Azure SQL Edge 容器。

3.要查看 Docker 容器,請(qǐng)使用 docker ps 命令。

Bash

 sudo docker ps -a

4.如果“狀態(tài)”列顯示“正常運(yùn)行”狀態(tài),表明 Azure SQL Edge 正在容器中運(yùn)行,且正在偵聽(tīng)“端口”列中指定的端口 。 如果 Azure SQL Edge 容器的“狀態(tài)”列顯示“已退出”,請(qǐng)參閱 Azure SQL Edge 文檔的疑難解答部分 。

-h(主機(jī)名)參數(shù)也非常有用,但為了簡(jiǎn)單起見(jiàn),本教程中不使用它。 這會(huì)將容器的內(nèi)部名稱更改為一個(gè)自定義值。 也就是以下 Transact-SQL 查詢中返回的名稱:

SQL

SELECT @@SERVERNAME,

    SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),

    SERVERPROPERTY('MachineName'),

    SERVERPROPERTY('ServerName')

將 -h 和 --name 設(shè)為相同的值是一種很好的方法,可以輕松地識(shí)別目標(biāo)容器。

5.最后一步,更改 SA 密碼,因?yàn)?SA_PASSWORD 在 ps -eax 輸出中可見(jiàn),并存儲(chǔ)在同名的環(huán)境變量中。 請(qǐng)參閱以下步驟。

更改 SA 密碼

SA 帳戶是安裝過(guò)程中創(chuàng)建的 Azure SQL Edge 實(shí)例上的系統(tǒng)管理員。 創(chuàng)建 Azure SQL Edge 容器后,通過(guò)在容器中運(yùn)行 echo $SA_PASSWORD,可發(fā)現(xiàn)指定的 MSSQL_SA_PASSWORD 環(huán)境變量。 出于安全考慮,請(qǐng)考慮更改 SA 密碼。

1.選擇 SA 用戶要使用的強(qiáng)密碼。

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

Bash

sudo docker exec -it azuresqledge /opt/mssql-tools/bin/sqlcmd \

   -S localhost -U SA -P "<YourStrong@Passw0rd>" \

   -Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong@Passw0rd>"'

連接到 Azure SQL Edge

下列步驟在容器內(nèi)部使用 Azure SQL Edge 命令行工具 sqlcmd 來(lái)連接 Azure SQL Edge。

 備注

sqlcmd 工具在 ARM64 版的 SQL Edge 容器中不提供。

1.使用 docker exec -it 命令在運(yùn)行的容器內(nèi)部啟動(dòng)交互式 Bash Shell。 在下面的示例中,azuresqledge 是在創(chuàng)建容器時(shí)由 --name 參數(shù)指定的名稱。

Bash

sudo docker exec -it azuresqledge "bash"

2.在容器內(nèi)部使用 sqlcmd 進(jìn)行本地連接。 默認(rèn)情況下,sqlcmd 不在路徑之中,因此需要指定完整路徑。

Bash

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

 提示

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

3.如果成功,應(yīng)會(huì)顯示 sqlcmd 命令提示符:1>。

創(chuàng)建和查詢數(shù)據(jù)

以下部分將引導(dǎo)你使用 sqlcmd 和 Transact-SQL 完成新建數(shù)據(jù)庫(kù)、添加數(shù)據(jù)并運(yùn)行簡(jiǎn)單查詢的整個(gè)過(guò)程。

新建數(shù)據(jù)庫(kù)

以下步驟創(chuàng)建一個(gè)名為 TestDB 的新數(shù)據(jù)庫(kù)。

1.在 sqlcmd 命令提示符中,粘貼以下 Transact-SQL 命令以創(chuàng)建測(cè)試數(shù)據(jù)庫(kù):

SQL

CREATE DATABASE TestDB

Go

2.在下一行中,編寫(xiě)一個(gè)查詢以返回服務(wù)器上所有數(shù)據(jù)庫(kù)的名稱:

SQL

SELECT Name from sys.Databases

Go

插入數(shù)據(jù)

接下來(lái)創(chuàng)建一個(gè)新表 Inventory,然后插入兩個(gè)新行。

1.在 sqlcmd 命令提示符中,將上下文切換到新的 TestDB 數(shù)據(jù)庫(kù):

SQL

USE TestDB

2.創(chuàng)建名為 Inventory 的新表:

SQL

CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)

3.將數(shù)據(jù)插入新表:

SQL

INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);

4.要執(zhí)行上述命令的類型 GO:

SQL

GO

選擇數(shù)據(jù)

現(xiàn)在,運(yùn)行查詢以從 Inventory 表返回?cái)?shù)據(jù)。

1.通過(guò) sqlcmd 命令提示符輸入查詢,以返回 Inventory 表中數(shù)量大于 152 的行:

SQL

SELECT * FROM Inventory WHERE quantity > 152;

2.執(zhí)行此命令:

SQL

GO

退出 sqlcmd 命令提示符

1.要結(jié)束 sqlcmd 會(huì)話,請(qǐng)鍵入 QUIT:

SQL

QUIT

2.要在容器中退出交互式命令提示,請(qǐng)鍵入 exit。 退出交互式 Bash Shell 后,容器將繼續(xù)運(yùn)行。

從容器外連接

還可以從支持 SQL 連接的任何 Linux、Windows 或 macOS 外部工具連接到 Docker 計(jì)算機(jī)上的 Azure SQL Edge 實(shí)例。 有關(guān)從外部連接到 SQL Edge 容器的詳細(xì)信息,請(qǐng)參閱連接和查詢 Azure SQL Edge。

刪除容器

如果想刪除本教程中使用的 Azure SQL Edge 容器,請(qǐng)運(yùn)行以下命令:

Bash

sudo docker stop azuresqledge

sudo docker rm azuresqledge

 警告

停止并刪除容器會(huì)永久刪除容器中的所有 Azure SQL Edge 數(shù)據(jù)。 如果你需要保留數(shù)據(jù),請(qǐng)?jiān)谌萜魍鈩?chuàng)建并復(fù)制備份文件或使用容器數(shù)據(jù)暫留技術(shù)。

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于Microsoft ,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營(yíng)方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營(yíng)、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來(lái)
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來(lái)
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺(tái)的發(fā)展掀開(kāi)了嶄新的一頁(yè),突破了性能、云原生開(kāi)發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺(tái),旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家