Nasazení Azure SQL Edge pomocí Dockeru

Důležité

Azure SQL Edge už nepodporuje platformu ARM64.

V tomto rychlém startu použijete Docker k načtení a spuštění image kontejneru Azure SQL Edge. Pak se připojte pomocí sqlcmd , vytvořte svou první databázi a spusťte dotazy.

Tato image se skládá z SQL Edge založeného na Ubuntu 18.04. Dá se použít s modulem Docker Engine 1.8 nebo novějším v Linuxu.

kontejnery Azure SQL Edge se nepodporují na následujících platformách pro produkční úlohy:

  • Windows
  • macOS
  • Azure IoT Edge pro Linux ve Windows (EFLOW)

Požadavky

  • Docker Engine 1.8 nebo novější ve všech podporovaných distribucích Linuxu. Další informace najdete v tématu Instalace Dockeru. Vzhledem k tomu, že image SQL Edge jsou založené na Ubuntu 18.04, doporučujeme použít hostitele Dockeru s 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ě nepoužíváte a potřebujete to změnit, přečtěte si pokyny a upozornění v dokumentaci k Dockeru pro konfiguraci překrytí2.
  • Minimálně 10 GB místa na disku.
  • Minimálně 1 GB paměti RAM.
  • Požadavky na hardware pro Azure SQL Edge

Poznámka

Pro příkazy Bash v tomto článku sudo se používají. Pokud nechcete ke spuštění Dockeru použít sudo , můžete nakonfigurovat skupinu Dockeru a přidat do této skupiny uživatele. Další informace najdete v tématu Postup po instalaci pro Linux.

Vyžádání a spuštění image kontejneru

  1. Stáhněte image kontejneru Azure SQL Edge ze služby Microsoft Container Registry.

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

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

  2. Pokud chcete spustit image kontejneru s Dockerem, použijte následující příkaz z prostředí Bash:

    • Spusťte instanci Azure SQL Edge spuštěnou jako edici 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
      
    • Spusťte instanci Azure SQL Edge spuštěnou jako edici 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
      

    Důležité

    Heslo by se mělo řídit výchozími zásadami hesel microsoft SQL Database Engine, jinak kontejner nemůže nastavit SQL Database Engine a přestane fungovat. Ve výchozím nastavení musí mít heslo délku nejméně 8 znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, základní 10 číslice 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ích docker run příkladech:

    Parametr Popis
    -e "ACCEPT_EULA=Y" Nastavením proměnné ACCEPT_EULA na libovolnou hodnotu potvrďte, že souhlasíte s licenční smlouvou s koncovým uživatelem. Požadované nastavení pro image SQL Edge
    -e "MSSQL_SA_PASSWORD=yourStrong(!) Heslo" Zadejte vlastní silné heslo, které má alespoň osm znaků a splňuje požadavky na heslo Azure SQL Edge. Požadované nastavení pro image 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 SQL Edge naslouchá na protokolu TCP 1433 v kontejneru a to je vystaveno na portu 1433 na hostiteli.
    --name azuresqledge Místo náhodně generovaného kontejneru zadejte vlastní název. Pokud spustíte více než jeden kontejner, nemůžete stejný název znovu použít.
    -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ů SQL Edge můžete použít také soubor mssql.conf.

  3. K zobrazení kontejnerů Dockeru docker ps použijte příkaz .

    sudo docker ps -a
    
  4. Pokud se ve sloupci STATUS zobrazuje stav Nahoru, sql Edge běží v kontejneru a naslouchá na portu zadaném ve sloupci PORTY . Pokud se ve sloupci STAV kontejneru SQL Edge zobrazuje Stav ukončeno, přečtěte si část Řešení potíží v dokumentaci k Azure SQL Edgi.

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

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

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

  5. Jako poslední krok změňte heslo SA, protože MSSQL_SA_PASSWORD je viditelné ve ps -eax výstupu a uložené v proměnné prostředí se stejným názvem. Projděte si následující kroky.

Změna hesla SA

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

  1. Zvolte silné heslo, které chcete použít pro uživatele SA.

  2. Pomocí docker exec příkazu sqlcmd můžete změnit heslo pomocí jazyka Transact-SQL. V následujícím příkladu nahraďte staré heslo <YourStrong!Passw0rd>a nové 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í k Azure SQL Edge

Následující kroky používají nástroj příkazového řádku Azure SQL Edge sqlcmd uvnitř kontejneru pro připojení k 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 příkladu azuresqledge je název zadaný parametrem --name při vytváření kontejneru.

    sudo docker exec -it azuresqledge "bash"
    
  2. Jakmile budete uvnitř kontejneru, připojte se 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

    Heslo na příkazovém řádku můžete vynechat, abyste ho zadali.

  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 provedou použitím sqlcmd a Transact-SQL k vytvoření nové databáze, přidání dat a spuštění 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 a vytvořte testovací databázi:

    CREATE DATABASE TestDB;
    GO
    
  2. Na dalším řádku 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 Inventorya 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žení dat do nové tabulky:

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. Pokud chcete spustit předchozí příkazy, zadejte GO :

    GO
    

Výběr dat

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

  1. Z příkazového řádku sqlcmd zadejte dotaz, který vrátí řádky z Inventory tabulky, kde je množství větší 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 v kontejneru ukončit interaktivní příkazový řádek, zadejte exit. Po ukončení interaktivního prostředí Bash se váš kontejner bude dál spouštět.

Připojení mimo kontejner

K instanci SQL Edge na počítači Dockeru se také můžete připojit z libovolného externího nástroje pro Linux, Windows nebo macOS, který podporuje připojení SQL. Další informace o připojení ke kontejneru SQL Edge zvenčí najdete v tématu Připojení a dotazování Azure SQL Edge.

Odebrání kontejneru

Pokud chcete odebrat kontejner 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í a odebrání kontejneru trvale odstraní všechna data SQL Edge v kontejneru. Pokud potřebujete zachovat data, vytvořte a zkopírujte záložní soubor z kontejneru nebo použijte metodu trvalosti dat kontejneru.

Další kroky