Udostępnij za pośrednictwem


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

  1. Ś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.

  2. 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.

  3. Aby wyświetlić kontenery platformy Docker, użyj docker ps polecenia .

    sudo docker ps -a
    
  4. 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.

  5. W ostatnim kroku zmień hasło administratora konta zabezpieczeń, ponieważ MSSQL_SA_PASSWORD element jest widoczny w ps -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.

  1. Wybierz silne hasło do użycia dla użytkownika sa.

  2. 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.

  1. Użyj polecenia , docker exec -it aby uruchomić interaktywną powłokę bash wewnątrz uruchomionego kontenera. W poniższym przykładzie azuresqledge jest nazwą określoną przez --name parametr podczas tworzenia kontenera.

    sudo docker exec -it azuresqledge "bash"
    
  2. 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.

  3. 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.

  1. W wierszu polecenia sqlcmd wklej następujące polecenie języka Transact-SQL, aby utworzyć testową bazę danych:

    CREATE DATABASE TestDB;
    GO
    
  2. 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ę , Inventoryi wstaw dwa nowe wiersze.

  1. W wierszu polecenia sqlcmd przełącz kontekst do nowej TestDB bazy danych:

    USE TestDB;
    
  2. Utwórz nową tabelę o nazwie Inventory:

    CREATE TABLE Inventory (
        id INT,
        name NVARCHAR(50),
        quantity INT
    );
    
  3. Wstaw dane do nowej tabeli:

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. Wpisz polecenie GO , aby wykonać poprzednie polecenia:

    GO
    

Wybieranie danych

Teraz uruchom zapytanie, aby zwrócić dane z Inventory tabeli.

  1. 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;
    
  2. Wykonaj polecenie:

    GO
    

Zamknij wiersz polecenia sqlcmd

  1. Aby zakończyć sesję sqlcmd , wpisz QUIT:

    QUIT
    
  2. 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.