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
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.
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=<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=<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=<senha>" Especifique sua própria senha forte que tenha pelo menos oito caracteres e atenda aos requisitos de senha. 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.
Para exibir seus contêineres do Docker, use o
docker ps
comando.sudo docker ps -a
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.Como etapa final, altere sua senha SA porque a
MSSQL_SA_PASSWORD
é visível naps -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.
Escolha uma senha forte para usar para o usuário SA.
Use
docker exec
para executar sqlcmd para alterar a senha usando Transact-SQL. No exemplo a seguir, substitua a senha antiga,<old-password>
, e a nova senha,<new-password>
, por seus próprios valores de senha.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>"'
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.
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"
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 "<password>"
Gorjeta
Você pode omitir a senha na linha de comando para ser solicitado a inseri-la.
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
.
No prompt de comando sqlcmd, cole o seguinte comando Transact-SQL para criar um banco de dados de teste:
CREATE DATABASE TestDB; GO
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, Inventory
crie uma nova tabela e insira duas novas linhas.
No prompt de comando sqlcmd, alterne o contexto para o novo
TestDB
banco de dados:USE TestDB;
Crie uma nova tabela com o nome
Inventory
:CREATE TABLE Inventory ( id INT, name NVARCHAR(50), quantity INT );
Insira dados na nova tabela:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
Digite
GO
para executar os comandos anteriores:GO
Selecionar dados
Agora, execute uma consulta para retornar dados da Inventory
tabela.
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;
Execute o comando:
GO
Saia do prompt de comando sqlcmd
Para encerrar sua sessão sqlcmd , digite
QUIT
:QUIT
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.