Udostępnij za pośrednictwem


Wdrażanie usługi Azure SQL Edge za pomocą platformy Docker

Ważne

Azure SQL Edge nie obsługuje już platformy ARM64.

W tym przewodniku Szybki start użyjesz platformy Docker do ściągania i uruchamiania obrazu 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
  • 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 usługi SQL Edge są oparte na systemie Ubuntu 18.04, zalecamy używanie hosta platformy Docker z systemem Ubuntu 18.04.
  • Sterownik magazynu docker overlay2 . 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, aby skonfigurować nakładkę2.
  • 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 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. Pobierz obraz 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 platformy Docker azure-sql-edge.

  2. Aby uruchomić obraz kontenera za pomocą platformy Docker, użyj następującego polecenia w powłoce powłoki 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=yourStrong(!)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=yourStrong(!)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 microsoft SQL Database, w przeciwnym razie kontener nie może skonfigurować aparatu SQL Database 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 dzienników platformy Docker .

    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=yourStrong(!) Hasło" Określ własne silne hasło, które ma co najmniej osiem znaków i spełnia wymagania dotyczące hasła usługi Azure SQL Edge. 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 usługa SQL Edge nasłuchuje na protokole 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 przeglądarki 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ę, usługa 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 komunikat 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 Transact-SQL:

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

    Ustawienie -h i --name ta sama wartość to dobry sposób na łatwe zidentyfikowanie kontenera docelowego.

  5. W ostatnim kroku zmień hasło sa, 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 sa 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 można odnaleźć, uruchamiając polecenie echo $MSSQL_SA_PASSWORD w kontenerze. W celach zabezpieczających zmień hasło konta sa.

  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, <YourStrong!Passw0rd>i nowe hasło, <YourNewStrong!Passw0rd>własnymi wartościami haseł.

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

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 za pomocą polecenia sqlcmd. narzędzie sqlcmd nie znajduje się domyślnie w ścieżce, dlatego musisz określić pełną ścieżkę.

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

    Porada

    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ń o dane

W poniższych sekcjach opisano 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 GO polecenie , 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ąć interaktywny wiersz polecenia w kontenerze, wpisz exit. Kontener będzie nadal uruchamiany po wyjściu z 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 z systemem 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 Łączenie i wykonywanie zapytań 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.

Następne kroki