Dela via


Distribuera Azure SQL Edge med Docker

Viktigt

Azure SQL Edge stöder inte längre ARM64-plattformen.

I den här snabbstarten använder du Docker för att hämta och köra Azure SQL Edge-containeravbildningen. Anslut sedan med sqlcmd för att skapa din första databas och köra frågor.

Den här avbildningen består av SQL Edge baserat på Ubuntu 18.04. Den kan användas med Docker Engine 1.8+ i Linux.

Azure SQL Edge-containrar stöds inte på följande plattformar för produktionsarbetsbelastningar:

  • Windows
  • macOS
  • Azure IoT Edge för Linux på Windows (EFLOW)

Förutsättningar

  • Docker Engine 1.8+ på alla Linux-distributioner som stöds. Mer information finns i Installera Docker. Eftersom SQL Edge-avbildningarna baseras på Ubuntu 18.04 rekommenderar vi att du använder en Ubuntu 18.04 Docker-värd.
  • Docker overlay2-lagringsdrivrutin. Detta är standard för de flesta användare. Om du upptäcker att du inte använder den här lagringsprovidern och behöver ändra den kan du läsa anvisningarna och varningarna i Docker-dokumentationen för att konfigurera överlägg2.
  • Minst 10 GB diskutrymme.
  • Minst 1 GB RAM-minne.
  • Maskinvarukrav för Azure SQL Edge.

Anteckning

För bash-kommandona i den här artikeln sudo används. Om du inte vill använda sudo för att köra Docker kan du konfigurera en Docker-grupp och lägga till användare i den gruppen. Mer information finns i Steg efter installationen för Linux.

Hämta och köra containeravbildningen

  1. Hämta Azure SQL Edge-containeravbildningen från Microsoft Container Registry.

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

    Föregående kommando hämtar den senaste SQL Edge-containeravbildningen. Om du vill se alla tillgängliga avbildningar kan du gå till dockerhubben azure-sql-edge.

  2. Om du vill köra containeravbildningen med Docker använder du följande kommando från ett bash-gränssnitt:

    • Starta en Azure SQL Edge-instans som körs som Developer Edition:

      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
      
    • Starta en Azure SQL Edge-instans som körs som Premium-utgåva:

      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
      

    Viktigt

    Lösenordet bör följa standardprincipen för Microsoft SQL Database Engine, annars kan containern inte konfigurera SQL Database Engine och slutar fungera. Lösenordet måste som standard vara minst 8 tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Du kan granska felloggen genom att köra kommandot docker logs .

    Följande tabell innehåller en beskrivning av parametrarna i föregående docker run exempel:

    Parameter Beskrivning
    -e "ACCEPT_EULA=Y" Ange variabeln ACCEPT_EULA till valfritt värde för att bekräfta ditt godkännande av licensavtalet för slutanvändare. Obligatorisk inställning för SQL Edge-avbildningen.
    -e "MSSQL_SA_PASSWORD=yourStrong(!) Lösenord" Ange ett eget starkt lösenord som är minst åtta tecken och som uppfyller lösenordskraven för Azure SQL Edge. Obligatorisk inställning för SQL Edge-avbildningen.
    -p 1433:1433 Mappa en TCP-port i värdmiljön (första värdet) med en TCP-port i containern (det andra värdet). I det här exemplet lyssnar SQL Edge på TCP 1433 i containern och detta exponeras för porten 1433 på värden.
    --name azuresqledge Ange ett anpassat namn för containern i stället för ett slumpmässigt genererat namn. Om du kör mer än en container kan du inte återanvända samma namn.
    -D Kör containern i bakgrunden (daemon)

    En fullständig lista över alla Azure SQL Edge-miljövariabler finns i Konfigurera Azure SQL Edge med miljövariabler. Du kan också använda en mssql.conf-fil för att konfigurera SQL Edge-containrar.

  3. Om du vill visa Docker-containrarna använder du docker ps kommandot .

    sudo docker ps -a
    
  4. Om statuskolumnen visar statusen Upp körs SQL Edge i containern och lyssnar på porten som anges i kolumnen PORTAR . Om kolumnen STATUS för SQL Edge-containern visar Avslutad läser du avsnittet Felsökning i Azure SQL Edge-dokumentationen.

    Parametern -h (värdnamn) är också användbar, men den används inte i den här självstudien för enkelhetens skull. Detta ändrar containerns interna namn till ett anpassat värde. Det här är namnet som returneras i följande Transact-SQL-fråga:

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

    Att ange -h och --name till samma värde är ett bra sätt att enkelt identifiera målcontainern.

  5. Som ett sista steg ändrar du sa-lösenordet eftersom MSSQL_SA_PASSWORD är synligt i ps -eax utdata och lagras i miljövariabeln med samma namn. Se följande steg.

Ändra SA-lösenordet

SA-kontot är en systemadministratör på den Azure SQL Edge-instans som skapas under installationen. När du har skapat din SQL Edge-container kan miljövariabeln MSSQL_SA_PASSWORD som du angav identifieras genom att köras echo $MSSQL_SA_PASSWORD i containern. Ändra sa-lösenordet i säkerhetssyfte.

  1. Välj ett starkt lösenord som ska användas för SA-användaren.

  2. Använd docker exec för att köra sqlcmd för att ändra lösenordet med Hjälp av Transact-SQL. I följande exempel ersätter du det gamla lösenordet, <YourStrong!Passw0rd>, och det nya lösenordet, <YourNewStrong!Passw0rd>med dina egna lösenordsvärden.

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

Ansluta till Azure SQL Edge

Följande steg använder kommandoradsverktyget Azure SQL Edge, sqlcmd, i containern för att ansluta till SQL Edge.

  1. docker exec -it Använd kommandot för att starta ett interaktivt bash-gränssnitt i containern som körs. I följande exempel azuresqledge är det namn som anges av parametern --name när du skapade containern.

    sudo docker exec -it azuresqledge "bash"
    
  2. När du är inne i containern ansluter du lokalt till sqlcmd. sqlcmd finns inte i sökvägen som standard, så du måste ange den fullständiga sökvägen.

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

    Tips

    Du kan utelämna lösenordet på kommandoraden för att uppmanas att ange det.

  3. Om det lyckas bör du komma till en sqlcmd-kommandotolk : 1>.

Skapa och fråga efter data

Följande avsnitt beskriver hur du använder sqlcmd och Transact-SQL för att skapa en ny databas, lägga till data och köra en fråga.

Skapa en ny databas

Följande steg skapar en ny databas med namnet TestDB.

  1. I kommandotolken sqlcmd klistrar du in följande Transact-SQL-kommando för att skapa en testdatabas:

    CREATE DATABASE TestDB;
    GO
    
  2. På nästa rad skriver du en fråga för att returnera namnet på alla databaser på servern:

    SELECT name from sys.databases;
    GO
    

Infoga data

Skapa sedan en ny tabell, Inventory, och infoga två nya rader.

  1. Växla kontext till den nya TestDB databasen från kommandotolken sqlcmd:

    USE TestDB;
    
  2. Skapa en ny tabell med namnet Inventory:

    CREATE TABLE Inventory (
        id INT,
        name NVARCHAR(50),
        quantity INT
    );
    
  3. Infoga data i den nya tabellen:

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. Skriv GO för att köra föregående kommandon:

    GO
    

Välj data

Kör nu en fråga för att returnera data från Inventory tabellen.

  1. Från kommandotolken sqlcmd anger du en fråga som returnerar rader från Inventory tabellen där kvantiteten är större än 152:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Kör kommandot:

    GO
    

Avsluta kommandotolken sqlcmd

  1. Avsluta sqlcmd-sessionen genom att skriva QUIT:

    QUIT
    
  2. Om du vill avsluta den interaktiva kommandotolken i containern skriver du exit. Containern fortsätter att köras när du har avslutat det interaktiva bash-gränssnittet.

Ansluta utanför containern

Du kan också ansluta till SQL Edge-instansen på Docker-datorn från ett externt Linux-, Windows- eller macOS-verktyg som stöder SQL-anslutningar. Mer information om hur du ansluter till en SQL Edge-container utifrån finns i Ansluta och fråga Azure SQL Edge.

Ta bort containern

Om du vill ta bort SQL Edge-containern som används i den här självstudien kör du följande kommandon:

sudo docker stop azuresqledge
sudo docker rm azuresqledge

Varning

Om du stoppar och tar bort en container tas alla SQL Edge-data i containern bort permanent. Om du behöver bevara dina data kan du skapa och kopiera en säkerhetskopia från containern eller använda en beständighetsteknik för containerdata.

Nästa steg