Distribuera Azure SQL Edge med Docker
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 Azure SQL Edge baserat på Ubuntu 18.04. Det kan användas med Docker Engine 1.8+ på Linux eller på Docker för Mac/Windows.
Förutsättningar
- Docker Engine 1.8+ på alla Linux-distributioner som stöds eller Docker för Mac/Windows. Mer information finns i Installera Docker. Eftersom Azure SQL Edge-avbildningarna baseras på Ubuntu 18.04 rekommenderar vi att du använder en Docker-värd för Ubuntu 18.04.
- Docker overlay2-lagringsdrivrutin. Det här är standardinställningen 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 overlay2.
- Minst 10 GB diskutrymme.
- Minst 1 GB RAM-minne.
- Maskinvarukrav för Azure SQL Edge.
Hämta och köra containeravbildningen
Innan du börjar med följande steg kontrollerar du att du har valt önskat gränssnitt (bash, PowerShell eller cmd) överst i den här artikeln.
Hämta Azure SQL Edge-containeravbildningen från Microsoft Container Registry.
- Hämta Azure SQL Edge-containeravbildningen
sudo docker pull mcr.microsoft.com/azure-sql-edge:latest
- Hämta Azure SQL Edge-containeravbildningen
Anteckning
För bash-kommandona i den här sudo artikeln används. På macOS och Windows sudo kanske inte krävs. Om du inte vill använda för att köra Docker i Linux kan du konfigurera en sudo Docker-grupp och lägga till användare i den gruppen. Mer information finns i Stegen efter installationen för Linux.
Föregående kommando hämtar de senaste Azure SQL Edge-containeravbildningarna. Om du vill se alla tillgängliga avbildningar kan du gå till dockerhubben azure-sql-egde.
Om du vill köra containeravbildningen med Docker kan du använda följande kommando från ett bash-gränssnitt (Linux/macOS) eller en upphöjd PowerShell-kommandotolk.
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-edgeStarta en Azure SQL Edge-instans som körs 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
Anteckning
Om du använder PowerShell på Windows dessa kommandon använder du dubbla citattecken i stället för enkla citattecken.
Anteckning
Lösenordet bör följa Microsoft SQL Database Engine-standardlösenordsprincipen, annars kan containern inte konfigurera SQL och slutar fungera. Som standard måste lösenordet vara minst 8 tecken långt och innehålla tecken från tre av följande fyra uppsättningar: Versaler, Gemener, Base 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 runexempel:Parameter Beskrivning -e "ACCEPT_EULA=Y" Ställ in ACCEPT_EULA variabeln till val annat värde för att bekräfta att du godkänner licensavtalet för slutanvändare. Obligatorisk inställning för Azure SQL Edge-avbildningen. -e "MSSQL_SA_PASSWORD=yourStrong(!) Lösenord" Ange ett eget starkt lösenord som är minst 8 tecken och som uppfyller kraven för Azure SQL Edge-lösenord. Obligatorisk inställning för Azure 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 Azure SQL Edge på TCP 1433 i containern och den 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 fler ä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 Azure SQL Edge-containrar.
Om du vill visa Dina Docker-containrar använder du
docker pskommandot .sudo docker ps -aOm statuskolumnen visar statusen Upp körs Azure SQL Edge i containern och lyssnar på porten som anges i kolumnen PORTAR. Om kolumnen STATUS för Azure SQL Edge-containern visar Avsluten kan du läsa felsökningsavsnittet i dokumentationen för Azure SQL Edge.
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 det interna namnet på containern till ett anpassat värde. Det här är det namn som returneras i följande Transact-SQL-fråga:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName')Att
-hange och till samma värde är ett bra sätt att enkelt identifiera--namemålcontainern.Som ett sista steg ändrar du sa-lösenordet eftersom visas i
SA_PASSWORDps -eaxutdata och lagras i miljövariabeln med samma namn. Se stegen nedan.
Ändra SA-lösenordet
SA-kontot är en systemadministratör på Azure SQL Edge-instansen som skapas under installationen. När du har skapat Azure SQL Edge-containern kan du identifiera MSSQL_SA_PASSWORD miljövariabeln som du angav genom echo $SA_PASSWORD att köra i containern. Av säkerhetsskäl kan du ändra ditt SA-lösenord.
Välj ett starkt lösenord som ska användas för SA-användaren.
Använd
docker execfö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<YourStrong!Passw0rd>lösenordet, , och det nya<YourNewStrong!Passw0rd>lösenordet, , 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>"'
Anslut till Azure SQL Edge
Följande steg använder Azure SQL Edge-kommandoradsverktyget sqlcmd i containern för att ansluta till Azure SQL Edge.
Anteckning
sqlcmd-verktyget är inte tillgängligt i ARM64-versionen av SQL Edge-containrar.
Använd kommandot
docker exec -itför att starta ett interaktivt bash-gränssnitt i containern som körs. I följande exempel ärazuresqledgenamnet som anges av--nameparametern när du skapade containern.sudo docker exec -it azuresqledge "bash"När du är 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 "<YourNewStrong@Passw0rd>"Tips
Du kan utelämna lösenordet på kommandoraden för att uppmanas att ange det.
Om det lyckas bör du gå 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 enkel fråga.
Skapa en ny databas
Följande steg skapar en ny databas med namnet TestDB .
Från sqlcmd-kommandotolken klistrar du in följande Transact-SQL för att skapa en testdatabas:
CREATE DATABASE TestDB GoPå 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.
Från kommandotolken sqlcmd växlar du kontexten till den nya
TestDBdatabasen:USE TestDBSkapa 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
GOfö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 sqlcmd-kommandotolken anger du en fråga som returnerar rader från tabellen
Inventorydär kvantiteten är större än 152:SELECT * FROM Inventory WHERE quantity > 152;Kör kommandot:
GO
Avsluta sqlcmd-kommandotolken
Om du vill avsluta sqlcmd-sessionen skriver du
QUIT:QUITOm 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.
Anslut utanför containern
Du kan också ansluta till Azure SQL Edge-instansen på din Docker-dator från ett externt Linux-, Windows Windows- eller macOS-verktyg som stöder SQL anslutningar. Mer information om hur du ansluter till en SQL Edge-container utifrån finns i Anslut fråga Azure SQL Edge.
Ta bort containern
Om du vill ta bort Azure 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 permanent tas alla Azure 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 containerdatapersistenceteknik.