Partilhar via


Implantar o Azure SQL Edge com o Docker

Importante

O Azure SQL Edge será desativado em 30 de setembro de 2025. Para obter mais informações e opções de migração, consulte o Aviso de aposentadoria.

Nota

O Azure SQL Edge não suporta mais a plataforma ARM64.

Neste início rápido, você usa o Docker para extrair e executar a imagem de contêiner do Azure SQL Edge. Em seguida, conecte-se ao sqlcmd para criar seu primeiro banco de dados e executar consultas.

Esta imagem consiste em SQL Edge baseado no Ubuntu 18.04. Ele pode ser usado com o Docker Engine 1.8+ no Linux.

Os contêineres do SQL Edge do Azure não são suportados nas seguintes plataformas para cargas de trabalho de produção:

  • Windows
  • macOS
  • Azure IoT Edge para Linux no Windows (EFLOW)

Pré-requisitos

  • Docker Engine 1.8+ em qualquer distribuição Linux suportada. Para obter mais informações, consulte Instalar o Docker. Como as imagens do SQL Edge são baseadas no Ubuntu 18.04, recomendamos que você use um host Docker do Ubuntu 18.04.
  • Driver de armazenamento Docker overlay2 . Este é o padrão para a maioria dos usuários. Se você achar que não está usando esse provedor de armazenamento e precisar alterar, consulte as instruções e avisos na documentação do Docker para configurar a sobreposição2.
  • Mínimo de 10 GB de espaço em disco.
  • Mínimo de 1 GB de RAM.
  • Requisitos de hardware para o Azure SQL Edge.

Nota

Para os comandos bash neste artigo sudo é usado. Se você não quiser usar sudo para executar o Docker, poderá configurar um grupo do Docker e adicionar usuários a esse grupo. Para obter mais informações, consulte Etapas pós-instalação para Linux.

Puxe e execute a imagem do contêiner

  1. Puxe a imagem do contêiner do Azure SQL Edge do Microsoft Container Registry.

    sudo docker pull mcr.microsoft.com/azure-sql-edge:latest
    

    O comando anterior extrai a imagem de contêiner mais recente do SQL Edge. Para ver todas as imagens disponíveis, consulte a página azure-sql-edge Docker hub.

  2. Para executar a imagem de contêiner com o Docker, use o seguinte comando de um shell bash:

    • Inicie uma instância do Azure SQL Edge em execução como a edição do desenvolvedor:

      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
      
    • Inicie uma instância do Azure SQL Edge em execução como a edição 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
      

    Importante

    A senha deve seguir a política de senha padrão do Mecanismo de Banco de Dados Microsoft SQL, caso contrário, o contêiner não poderá configurar o Mecanismo de Banco de Dados SQL e deixará de funcionar. Por padrão, a senha deve ter pelo menos 8 caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. Você pode examinar o log de erros executando o comando docker logs .

    A tabela a seguir fornece uma descrição dos parâmetros nos exemplos anteriores docker run :

    Parâmetro Description
    -e "ACCEPT_EULA=Y" Defina a variável ACCEPT_EULA para qualquer valor para confirmar a sua aceitação do Contrato de Licença de Utilizador Final. Configuração necessária para a imagem do SQL Edge.
    -e "MSSQL_SA_PASSWORD=seuForte(!) Palavra-passe" Especifique sua própria senha forte que tenha pelo menos oito caracteres e atenda aos requisitos de senha do Azure SQL Edge. Configuração necessária para a imagem do SQL Edge.
    -p 1433:1433 Mapeie uma porta TCP no ambiente host (primeiro valor) com uma porta TCP no contêiner (segundo valor). Neste exemplo, o SQL Edge está escutando no TCP 1433 no contêiner e isso é exposto à porta, 1433, no host.
    --nome azuresqledge Especifique um nome personalizado para o contêiner em vez de um gerado aleatoriamente. Se você executar mais de um contêiner, não poderá reutilizar esse mesmo nome.
    -d Execute o contêiner em segundo plano (daemon)

    Para obter uma lista completa de todas as variáveis de ambiente do Azure SQL Edge, consulte Configurar o Azure SQL Edge com variáveis de ambiente. Você também pode usar um arquivo mssql.conf para configurar contêineres do SQL Edge.

  3. Para exibir seus contêineres do Docker, use o docker ps comando.

    sudo docker ps -a
    
  4. Se a coluna STATUS mostrar um status de Up, o SQL Edge estará sendo executado no contêiner e escutando na porta especificada na coluna PORTS . Se a coluna STATUS do contêiner do SQL Edge mostrar Exited, consulte a seção Solução de problemas da documentação do SQL Edge do Azure.

    O -h parâmetro (nome do host) também é útil, mas não é usado neste tutorial para simplificar. Isso altera o nome interno do contêiner para um valor personalizado. Este é o nome retornado na seguinte consulta Transact-SQL:

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

    Definir -h e --name com o mesmo valor é uma boa maneira de identificar facilmente o contêiner de destino.

  5. Como etapa final, altere sua senha SA porque a MSSQL_SA_PASSWORD é visível na ps -eax saída e armazenada na variável de ambiente de mesmo nome. Consulte os passos seguintes.

Alterar a palavra-passe SA

A conta SA é um administrador de sistema na instância do Azure SQL Edge que é criada durante a instalação. Depois de criar o contêiner do SQL Edge, a variável de ambiente especificada pode ser detetada MSSQL_SA_PASSWORD pela execução echo $MSSQL_SA_PASSWORD no contêiner. Por motivos de segurança, altere a sua palavra-passe SA.

  1. Escolha uma senha forte para usar para o usuário SA.

  2. Use docker exec para executar sqlcmd para alterar a senha usando Transact-SQL. No exemplo a seguir, substitua a senha antiga, <YourStrong!Passw0rd>, e a nova senha, <YourNewStrong!Passw0rd>, por seus próprios valores de senha.

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

Conectar-se ao Azure SQL Edge

As etapas a seguir usam a ferramenta de linha de comando do Azure SQL Edge, sqlcmd, dentro do contêiner para se conectar ao SQL Edge.

  1. Use o comando para iniciar um shell bash interativo dentro do docker exec -it contêiner em execução. No exemplo a seguir, azuresqledge é o nome especificado pelo --name parâmetro quando você criou o contêiner.

    sudo docker exec -it azuresqledge "bash"
    
  2. Uma vez dentro do contêiner, conecte-se localmente com o sqlcmd. O sqlcmd não está no caminho por padrão, então você precisa especificar o caminho completo.

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

    Gorjeta

    Você pode omitir a senha na linha de comando para ser solicitado a inseri-la.

  3. Se for bem-sucedido, você deve chegar a um prompt de comando sqlcmd : 1>.

Criar e consultar dados

As seções a seguir orientam você pelo uso do sqlcmd e do Transact-SQL para criar um novo banco de dados, adicionar dados e executar uma consulta.

Criar uma nova base de dados

As etapas a seguir criam um novo banco de dados chamado TestDB.

  1. No prompt de comando sqlcmd, cole o seguinte comando Transact-SQL para criar um banco de dados de teste:

    CREATE DATABASE TestDB;
    GO
    
  2. Na próxima linha, escreva uma consulta para retornar o nome de todos os bancos de dados no servidor:

    SELECT name from sys.databases;
    GO
    

Inserir dados

Em seguida, Inventorycrie uma nova tabela e insira duas novas linhas.

  1. No prompt de comando sqlcmd, alterne o contexto para o novo TestDB banco de dados:

    USE TestDB;
    
  2. Crie uma nova tabela com o nome Inventory:

    CREATE TABLE Inventory (
        id INT,
        name NVARCHAR(50),
        quantity INT
    );
    
  3. Insira dados na nova tabela:

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. Digite GO para executar os comandos anteriores:

    GO
    

Selecionar dados

Agora, execute uma consulta para retornar dados da Inventory tabela.

  1. No prompt de comando sqlcmd, insira uma consulta que retorne linhas da Inventory tabela em que a quantidade é maior que 152:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Execute o comando:

    GO
    

Saia do prompt de comando sqlcmd

  1. Para encerrar sua sessão sqlcmd , digite QUIT:

    QUIT
    
  2. Para sair do prompt de comando interativo no contêiner, digite exit. Seu contêiner continua a ser executado depois que você sai do shell bash interativo.

Conecte-se de fora do contêiner

Você também pode se conectar à instância do SQL Edge em sua máquina Docker a partir de qualquer ferramenta externa do Linux, Windows ou macOS que ofereça suporte a conexões SQL. Para obter mais informações sobre como se conectar a um contêiner do SQL Edge de fora, consulte Conectar e consultar o SQL Edge do Azure.

Remova o recipiente

Se desejar remover o contêiner do SQL Edge usado neste tutorial, execute os seguintes comandos:

sudo docker stop azuresqledge
sudo docker rm azuresqledge

Aviso

Parar e remover um contêiner exclui permanentemente todos os dados do SQL Edge no contêiner. Se você precisar preservar seus dados, crie e copie um arquivo de backup do contêiner ou use uma técnica de persistência de dados do contêiner.