Distribuera Azure SQL Edge med Docker
Viktigt!
Azure SQL Edge dras tillbaka den 30 september 2025. Mer information och migreringsalternativ finns i meddelandet Om pensionering.
Kommentar
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 i 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 standardvärdet 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.
Kommentar
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ör containeravbildningen
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. Information om hur du ser alla tillgängliga avbildningar finns på dockerhubben azure-sql-edge.
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=<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=<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 undersöka felloggen genom att köra kommandot docker-loggar .
Följande tabell innehåller en beskrivning av parametrarna i föregående
docker run
exempel:Parameter Description -e "ACCEPT_EULA=Y" Ange variabeln ACCEPT_EULA till valfritt värde för att bekräfta att du godkänner licensavtalet för slutanvändare. Obligatorisk inställning för SQL Edge-avbildningen. -e "MSSQL_SA_PASSWORD=<password>" Ange ett eget starkt lösenord som är minst åtta tecken och som uppfyller lösenordskraven. 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 (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.
Om du vill visa dina Docker-containrar använder du
docker ps
kommandot .sudo docker ps -a
Om kolumnen STATUS visar statusen Upp körs SQL Edge i containern och lyssnar på porten som anges i kolumnen PORTS. 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.Som ett sista steg ändrar du sa-lösenordet eftersom det
MSSQL_SA_PASSWORD
visas ips -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å Azure SQL Edge-instansen 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. I säkerhetssyfte ändrar du ditt SA-lösenord.
Välj ett starkt lösenord som ska användas för SA-användaren.
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 ,<old-password>
och det nya lösenordet,<new-password>
, med dina egna lösenordsvärden.sudo docker exec -it azuresqledge /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P "<old-password>" \ -Q 'ALTER LOGIN SA WITH PASSWORD="<new-password>"'
Ansluta till Azure SQL Edge
Följande steg använder kommandoradsverktyget Azure SQL Edge, sqlcmd, i containern för att ansluta till SQL Edge.
docker exec -it
Använd kommandot för att starta ett interaktivt bash-gränssnitt i containern som körs. I följande exempelazuresqledge
är det namn som anges av parametern--name
när du skapade containern.sudo docker exec -it azuresqledge "bash"
När du är inne i containern ansluter du lokalt med 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 "<password>"
Dricks
Du kan utelämna lösenordet på kommandoraden för att uppmanas att ange det.
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
.
Från kommandotolken sqlcmd klistrar du in följande Transact-SQL-kommando för att skapa en testdatabas:
CREATE DATABASE TestDB; GO
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.
Växla kontext till den nya
TestDB
databasen från kommandotolken för sqlcmd:USE TestDB;
Skapa en ny tabell med namnet
Inventory
:CREATE TABLE Inventory ( id INT, name NVARCHAR(50), quantity INT );
Infoga data i den nya tabellen:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
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.
Från kommandotolken sqlcmd anger du en fråga som returnerar rader från
Inventory
tabellen där antalet är större än 152:SELECT * FROM Inventory WHERE quantity > 152;
Kör kommandot:
GO
Avsluta kommandotolken för sqlcmd
Om du vill avsluta sqlcmd-sessionen skriver du
QUIT
:QUIT
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 alla externa 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 skapar och kopierar du en säkerhetskopia från containern eller använder en beständighetsteknik för containerdata.