Nasazení Azure SQL Edge s využitím Dockeru

V tomto rychlém startu použijete Docker k natažení a spuštění image kontejneru Azure SQL Edge. Pak se pomocí nástroje sqlcmd připojte k vytvoření první databáze a spuštění dotazů.

Tato image se skládá z Azure SQL Edge založeného na Ubuntu 18.04. Můžete ho použít s Docker Engineem 1.8+ v Linuxu nebo v Dockeru pro Mac nebo Windows.

Požadavky

  • Docker Engine 1.8+ v jakékoli podporované distribuci Linuxu nebo Dockeru pro Mac/Windows. Další informace najdete v tématu Instalace Dockeru. Vzhledem k tomu, že image Azure SQL Edge jsou založené na Ubuntu 18.04, doporučuje se použít hostitele Dockeru Ubuntu 18.04.
  • Ovladač úložiště Docker overlay2. Toto je výchozí nastavení pro většinu uživatelů. Pokud zjistíte, že tohoto poskytovatele úložiště nepotřebujete a potřebujete ho změnit, projděte si pokyny a upozornění v dokumentaci k Dockeru pro konfiguraci overlay2.
  • Minimálně 10 GB místa na disku.
  • Minimálně 1 GB paměti RAM.
  • Požadavky na hardware pro Azure SQL Edge.

Natažení a spuštění image kontejneru

Před zahájením následujících kroků se ujistěte, že jste v horní části tohoto článku vybrali upřednostňované prostředí (bash, PowerShell nebo cmd).

  1. Stáhněte si image kontejneru Azure SQL Edge z Microsoft Container Registry.

    • Stáhněte si image kontejneru Azure SQL Edge.
      sudo docker pull mcr.microsoft.com/azure-sql-edge:latest 
      

Poznámka

Pro příkazy Bash v tomto článku sudo se používá . V systému macOS a Windows sudo nemusí být vyžadována. Pokud v Linuxu nechcete ke spuštění Dockeru použít , můžete nakonfigurovat skupinu sudo Dockeru a přidat do této skupiny uživatele. Další informace najdete v tématu Postup po instalaci pro Linux.

Předchozí příkaz stáhne nejnovější image kontejnerů Azure SQL Edge. Pokud chcete zobrazit všechny dostupné image, podívejte se na stránku centra Dockeru azure-sql-egde.

  1. Ke spuštění image kontejneru pomocí Dockeru můžete použít následující příkaz z prostředí Bash (Linux/macOS) nebo powershellového příkazového řádku se zvýšenými oprávněními.

    • Spuštění instance Azure SQL Edge jako edice Developer

      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
      
    • Spuštění instance Azure SQL Edge jako edice Premium

      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
      

    Poznámka

    Pokud ke spuštění těchto příkazů používáte PowerShell Windows, použijte místo jednoduchých uvozovek dvojité uvozovky.

    Poznámka

    Heslo by se mělo řídit výchozími zásadou hesla modulu Microsoft SQL Database Engine, jinak kontejner nemůže nastavit SQL a přestane fungovat. Heslo musí mít ve výchozím nastavení minimálně 8 znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice v základu 10 a symboly. Protokol chyb můžete prozkoumat spuštěním příkazu docker logs.

    Následující tabulka obsahuje popis parametrů v předchozím docker run příkladu:

    Parametr Popis
    -e "ACCEPT_EULA=Y" Nastavte ACCEPT_EULA na libovolnou hodnotu, abyste potvrdili přijetí licenční smlouvy s koncovým uživatelem. Požadované nastavení pro image Azure SQL Edge
    -e "MSSQL_SA_PASSWORD=yourStrong(!) Password (Heslo) Zadejte vlastní silné heslo, které má alespoň 8 znaků a splňuje požadavky na heslo azure SQL Edge. Požadované nastavení pro image Azure SQL Edge
    -p 1433:1433 Namapujte port TCP v hostitelském prostředí (první hodnota) na port TCP v kontejneru (druhá hodnota). V tomto příkladu Azure SQL Edge naslouchá na portu TCP 1433 v kontejneru, který je zveřejněný na portu 1433 na hostiteli.
    --name azuresqledge Zadejte vlastní název kontejneru, nikoli náhodně vygenerovaný. Pokud spustíte více než jeden kontejner, nemůžete znovu použít stejný název.
    -d Spuštění kontejneru na pozadí (démon)

    Úplný seznam všech proměnných prostředí Azure SQL Edge najdete v tématu Konfigurace Azure SQL Edge pomocí proměnných prostředí. Ke konfiguraci kontejnerů Azure SQL Edge můžete použít také soubor mssql.conf.

  2. Kontejnery Dockeru zobrazíte pomocí docker ps příkazu .

     sudo docker ps -a
    
  3. Pokud se ve sloupci STATUS zobrazuje stav Up, pak je v kontejneru spuštěná služba Azure SQL Edge a naslouchá na portu určeném ve sloupci PORTY. Pokud se ve sloupci STATUS kontejneru Azure SQL Edge zobrazuje Exited (Ukončeno), podívejte se do části Řešení potíží v dokumentaci k Azure SQL Edge.

    Parametr (název hostitele) je také užitečný, ale pro zjednodušení se v -h tomto kurzu nepouží. Tím se změní interní název kontejneru na vlastní hodnotu. Toto je název, který se zobrazí v následujícím dotazu Transact-SQL:

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

    Nastavení -h --name a na stejnou hodnotu je dobrým způsobem, jak snadno identifikovat cílový kontejner.

  4. V posledním kroku změňte heslo SA, protože je viditelný ve výstupu a uložený v proměnné prostředí SA_PASSWORD ps -eax se stejným názvem. Viz následující postup.

Změna hesla SA

Účet SA je správce systému v instanci Azure SQL Edge, který se vytvoří během instalace. Po vytvoření kontejneru Azure SQL Edge je proměnná prostředí, kterou jste zadali, zjistitelná MSSQL_SA_PASSWORD spuštěním echo $SA_PASSWORD v kontejneru. Z bezpečnostních důvodů změňte heslo SA.

  1. Zvolte silné heslo, které se použije pro uživatele SA.

  2. Pomocí docker exec příkazu spusťte příkaz sqlcmd a změňte heslo pomocí transact-SQL. V následujícím příkladu nahraďte staré heslo a nové <YourStrong!Passw0rd> heslo <YourNewStrong!Passw0rd> vlastními hodnotami hesla.

    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>"'
    

Připojení do Azure SQL Edge

V následujících krocích se pomocí nástroje příkazového řádku Azure SQL Edge sqlcmd uvnitř kontejneru připojíte k Azure SQL Edge.

Poznámka

Nástroj sqlcmd není k dispozici ve verzi ARM64 kontejnerů SQL Edge.

  1. Pomocí příkazu docker exec -it spusťte interaktivní prostředí Bash uvnitř spuštěného kontejneru. V následujícím azuresqledge příkladu je název určený --name parametrem při vytváření kontejneru.

    sudo docker exec -it azuresqledge "bash"
    
  2. V kontejneru se připojte místně pomocí sqlcmd. Sqlcmd není ve výchozím nastavení v cestě, takže musíte zadat úplnou cestu.

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

    Tip

    Můžete vynechat heslo na příkazovém řádku a zobrazit tak výzvu k jeho zadání.

  3. V případě úspěchu byste se měli dostat na příkazový řádek sqlcmd: 1> .

Vytvoření a dotazování dat

Následující části vás projde použitím sqlcmd a Transact-SQL k vytvoření nové databáze, přidání dat a spuštění jednoduchého dotazu.

Vytvoření nové databáze

Následující kroky vytvoří novou databázi s názvem TestDB .

  1. Z příkazového řádku sqlcmd vložte následující příkaz Transact-SQL pro vytvoření testovací databáze:

    CREATE DATABASE TestDB
    Go
    
  2. Na další řádek napište dotaz, který vrátí název všech databází na vašem serveru:

    SELECT Name from sys.Databases
    Go
    

Vložení dat

Dále vytvořte novou tabulku Inventory a vložte dva nové řádky.

  1. Z příkazového řádku sqlcmd přepněte kontext na novou TestDB databázi:

    USE TestDB
    
  2. Vytvořte novou tabulku s názvem Inventory :

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. Vložte data do nové tabulky:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. Zadejte GO a spusťte předchozí příkazy:

    GO
    

Výběr dat

Teď spusťte dotaz, který vrátí data z Inventory tabulky.

  1. Na příkazovém řádku sqlcmd zadejte dotaz, který vrátí řádky z tabulky, ve které je množství větší Inventory než 152:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Spusťte příkaz :

    GO
    

Ukončete příkazový řádek sqlcmd.

  1. Pokud chcete ukončit relaci sqlcmd, zadejte QUIT :

    QUIT
    
  2. Pokud chcete interaktivní příkazový řádek v kontejneru ukončit, zadejte exit . Po ukončení interaktivního prostředí Bash bude váš kontejner dál běžet.

Připojení mimo kontejner

K instanci Azure SQL Edge na počítači s Dockerem se můžete připojit také z jakéhokoli externího nástroje pro Linux, Windows nebo macOS, který podporuje SQL připojení. Další informace o připojení ke kontejneru SQL Edge z vnějšku najdete v Připojení a dotazování Azure SQL Edge.

Odebrání kontejneru

Pokud chcete odebrat kontejner Azure SQL Edge použitý v tomto kurzu, spusťte následující příkazy:

sudo docker stop azuresqledge
sudo docker rm azuresqledge

Upozornění

Zastavením a odebráním kontejneru se trvale odstraní SQL Data Edge v kontejneru. Pokud potřebujete zachovat data, vytvořte a zkopírujte záložní soubor z kontejneru nebo použijte techniku trvalosti dat kontejneru.

Další kroky