Wdrażanie usługi Azure SQL Edge przy użyciu platformy Docker
Ważne
Usługa Azure SQL Edge zostanie wycofana 30 września 2025 r. Aby uzyskać więcej informacji i opcji migracji, zobacz powiadomienie o wycofaniu.
Uwaga
Usługa Azure SQL Edge nie obsługuje już platformy ARM64.
W tym przewodniku Szybki start użyjesz platformy Docker, aby ściągnąć i uruchomić obraz kontenera usługi Azure SQL Edge. Następnie połącz się z narzędziem sqlcmd, aby utworzyć pierwszą bazę danych i uruchomić zapytania.
Ten obraz składa się z przeglądarki SQL Edge opartej na systemie Ubuntu 18.04. Można go używać z aparatem platformy Docker w wersji 1.8 lub nowszej w systemie Linux.
Kontenery usługi Azure SQL Edge nie są obsługiwane na następujących platformach dla obciążeń produkcyjnych:
- Windows
- macOS
- Usługa Azure IoT Edge dla systemu Linux w systemie Windows (EFLOW)
Wymagania wstępne
- Aparat platformy Docker w wersji 1.8 lub nowszej w dowolnej obsługiwanej dystrybucji systemu Linux. Aby uzyskać więcej informacji, zobacz Instalowanie platformy Docker. Ponieważ obrazy programu SQL Edge są oparte na systemie Ubuntu 18.04, zalecamy używanie hosta platformy Docker z systemem Ubuntu 18.04.
- Sterownik magazynu nakładki platformy Docker2. Jest to ustawienie domyślne dla większości użytkowników. Jeśli okaże się, że nie używasz tego dostawcy magazynu i musisz go zmienić, zapoznaj się z instrukcjami i ostrzeżeniami w dokumentacji platformy Docker na potrzeby konfigurowania nakładki2.
- Co najmniej 10 GB miejsca na dysku.
- Co najmniej 1 GB pamięci RAM.
- Wymagania sprzętowe usługi Azure SQL Edge.
Uwaga
W przypadku poleceń powłoki bash w tym artykule sudo
jest używany. Jeśli nie chcesz używać sudo
platformy Docker do uruchamiania platformy Docker, możesz skonfigurować grupę platformy Docker i dodać użytkowników do tej grupy. Aby uzyskać więcej informacji, zobacz Kroki po instalacji dla systemu Linux.
Ściąganie i uruchamianie obrazu kontenera
Ściąganie obrazu kontenera usługi Azure SQL Edge z usługi Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/azure-sql-edge:latest
Poprzednie polecenie ściąga najnowszy obraz kontenera usługi SQL Edge. Aby wyświetlić wszystkie dostępne obrazy, zobacz stronę centrum docker azure-sql-edge.
Aby uruchomić obraz kontenera za pomocą platformy Docker, użyj następującego polecenia w powłoce bash:
Uruchom wystąpienie usługi Azure SQL Edge uruchomione jako wersja Developer:
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
Uruchom wystąpienie usługi Azure SQL Edge uruchomione jako wersja Premium:
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
Ważne
Hasło powinno być zgodne z domyślnymi zasadami haseł aparatu bazy danych Microsoft SQL Database. W przeciwnym razie kontener nie może skonfigurować aparatu bazy danych SQL i przestanie działać. Domyślnie hasło musi mieć długość co najmniej 8 znaków i zawierać znaki z trzech z następujących czterech zestawów: wielkie litery, małe litery, cyfry podstawowe-10 i symbole. Dziennik błędów można sprawdzić, wykonując polecenie docker logs .
Poniższa tabela zawiera opis parametrów w poprzednich
docker run
przykładach:Parametr Opis -e "ACCEPT_EULA=Y" Ustaw zmienną ACCEPT_EULA na dowolną wartość, aby potwierdzić akceptację umowy licencyjnej użytkownika końcowego. Wymagane ustawienie dla obrazu usługi SQL Edge. -e "MSSQL_SA_PASSWORD=<password>" Określ własne silne hasło, które ma co najmniej osiem znaków i spełnia wymagania dotyczące hasła. Wymagane ustawienie dla obrazu usługi SQL Edge. -p 1433:1433 Mapowanie portu TCP w środowisku hosta (pierwsza wartość) przy użyciu portu TCP w kontenerze (druga wartość). W tym przykładzie przeglądarka SQL Edge nasłuchuje na serwerze TCP 1433 w kontenerze i jest ona widoczna na porcie 1433 na hoście. --name azuresqledge Określ niestandardową nazwę kontenera, a nie wygenerowaną losowo. Jeśli uruchamiasz więcej niż jeden kontener, nie możesz ponownie użyć tej samej nazwy. -d Uruchamianie kontenera w tle (demona) Aby uzyskać pełną listę wszystkich zmiennych środowiskowych usługi Azure SQL Edge, zobacz Konfigurowanie usługi Azure SQL Edge ze zmiennymi środowiskowymi. Do konfigurowania kontenerów usługi SQL Edge można również użyć pliku mssql.conf.
Aby wyświetlić kontenery platformy Docker, użyj
docker ps
polecenia .sudo docker ps -a
Jeśli w kolumnie STATUS jest wyświetlany stan W górę, przeglądarka SQL Edge jest uruchomiona w kontenerze i nasłuchuje na porcie określonym w kolumnie PORTY. Jeśli kolumna STATUS dla kontenera usługi SQL Edge zawiera wartość Exited (Zakończono), zobacz sekcję Rozwiązywanie problemów w dokumentacji usługi Azure SQL Edge.
Parametr
-h
(nazwa hosta) jest również przydatny, ale nie jest używany w tym samouczku dla uproszczenia. Spowoduje to zmianę wewnętrznej nazwy kontenera na wartość niestandardową. Jest to nazwa zwrócona w następującym zapytaniu Języka Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Ustawienie
-h
i--name
wartość tej samej wartości to dobry sposób na łatwe zidentyfikowanie kontenera docelowego.W ostatnim kroku zmień hasło administratora konta zabezpieczeń, ponieważ
MSSQL_SA_PASSWORD
element jest widoczny wps -eax
danych wyjściowych i przechowywany w zmiennej środowiskowej o tej samej nazwie. Zapoznaj się z poniższymi krokami.
Zmienianie hasła administratora systemu
Konto administratora zabezpieczeń jest administratorem systemu w wystąpieniu usługi Azure SQL Edge, które jest tworzone podczas instalacji. Po utworzeniu kontenera usługi SQL Edge określona zmienna MSSQL_SA_PASSWORD
środowiskowa jest wykrywalna przez uruchomienie echo $MSSQL_SA_PASSWORD
w kontenerze. W celach bezpieczeństwa zmień hasło administratora konta.
Wybierz silne hasło do użycia dla użytkownika sa.
Użyj
docker exec
polecenia , aby uruchomić polecenie sqlcmd , aby zmienić hasło przy użyciu języka Transact-SQL. W poniższym przykładzie zastąp stare hasło ,<old-password>
i nowe hasło<new-password>
własnymi wartościami haseł.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>"'
Nawiązywanie połączenia z usługą Azure SQL Edge
W poniższych krokach użyj narzędzia wiersza polecenia usługi Azure SQL Edge, sqlcmd, wewnątrz kontenera, aby nawiązać połączenie z usługą SQL Edge.
Użyj polecenia ,
docker exec -it
aby uruchomić interaktywną powłokę bash wewnątrz uruchomionego kontenera. W poniższym przykładzieazuresqledge
jest nazwą określoną przez--name
parametr podczas tworzenia kontenera.sudo docker exec -it azuresqledge "bash"
Po przejściu do kontenera połącz się lokalnie z narzędziem sqlcmd. narzędzie sqlcmd nie znajduje się domyślnie w ścieżce, więc musisz określić pełną ścieżkę.
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<password>"
Napiwek
Możesz pominąć hasło w wierszu polecenia, aby wyświetlić monit o jego wprowadzenie.
W przypadku powodzenia należy przejść do wiersza polecenia sqlcmd :
1>
.
Tworzenie i wykonywanie zapytań dotyczących danych
W poniższych sekcjach przedstawiono sposób tworzenia nowej bazy danych, dodawania danych i uruchamiania zapytania przy użyciu narzędzia sqlcmd i języka Transact-SQL.
Tworzenie nowej bazy danych
Poniższe kroki umożliwiają utworzenie nowej bazy danych o nazwie TestDB
.
W wierszu polecenia sqlcmd wklej następujące polecenie języka Transact-SQL, aby utworzyć testową bazę danych:
CREATE DATABASE TestDB; GO
W następnym wierszu napisz zapytanie, aby zwrócić nazwę wszystkich baz danych na serwerze:
SELECT name from sys.databases; GO
Wstawianie danych
Następnie utwórz nową tabelę , Inventory
i wstaw dwa nowe wiersze.
W wierszu polecenia sqlcmd przełącz kontekst do nowej
TestDB
bazy danych:USE TestDB;
Utwórz nową tabelę o nazwie
Inventory
:CREATE TABLE Inventory ( id INT, name NVARCHAR(50), quantity INT );
Wstaw dane do nowej tabeli:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
Wpisz polecenie
GO
, aby wykonać poprzednie polecenia:GO
Wybieranie danych
Teraz uruchom zapytanie, aby zwrócić dane z Inventory
tabeli.
W wierszu polecenia sqlcmd wprowadź zapytanie zwracające wiersze z
Inventory
tabeli, w której ilość jest większa niż 152:SELECT * FROM Inventory WHERE quantity > 152;
Wykonaj polecenie:
GO
Zamknij wiersz polecenia sqlcmd
Aby zakończyć sesję sqlcmd , wpisz
QUIT
:QUIT
Aby zamknąć interakcyjny wiersz polecenia w kontenerze, wpisz
exit
. Kontener nadal działa po zamknięciu interaktywnej powłoki powłoki bash.
Nawiązywanie połączenia spoza kontenera
Możesz również nawiązać połączenie z wystąpieniem usługi SQL Edge na maszynie platformy Docker z dowolnego zewnętrznego narzędzia systemu Linux, Windows lub macOS, które obsługuje połączenia SQL. Aby uzyskać więcej informacji na temat nawiązywania połączenia z kontenerem usługi SQL Edge z zewnątrz, zobacz Nawiązywanie połączeń i wykonywanie zapytań w usłudze Azure SQL Edge.
Usuwanie kontenera
Jeśli chcesz usunąć kontener usługi SQL Edge używany w tym samouczku, uruchom następujące polecenia:
sudo docker stop azuresqledge
sudo docker rm azuresqledge
Ostrzeżenie
Zatrzymywanie i usuwanie kontenera trwale usuwa wszystkie dane usługi SQL Edge w kontenerze. Jeśli chcesz zachować dane, utwórz i skopiuj plik kopii zapasowej z kontenera lub użyj techniki trwałości danych kontenera.