Guia de início rápido: executar imagens de contêiner do SQL Server Linux com o Docker
Aplica-se a:SQL Server - Linux
Neste início rápido, você usa o Docker para extrair e executar a imagem de contêiner do Linux do SQL Server 2017 (14.x), mssql-server-linux. Em seguida, você pode se conectar com sqlcmd para criar seu primeiro banco de dados e executar consultas.
Para obter mais informações sobre plataformas com suporte, consulte Notas de versão do SQL Server 2017 no Linux.
Advertência
Quando você para e remove um contêiner, os dados do SQL Server no contêiner são excluídos permanentemente. Para obter mais informações sobre como preservar seus dados, criar e copiar um arquivo de backup do contêiner ou usar uma técnica de persistência de dados de contêiner .
Este guia de início rápido cria contêineres do SQL Server 2017 (14.x). Se preferires criar contentores Linux para diferentes versões do SQL Server, consulta as versões deste artigo para SQL Server 2019 (15.x) ou SQL Server 2022 (16.x).
Neste início rápido, você usa o Docker para extrair e executar a imagem de contêiner do Linux do SQL Server 2019 (15.x), mssql-server-linux. Em seguida, você pode se conectar com sqlcmd para criar seu primeiro banco de dados e executar consultas.
Para obter mais informações sobre plataformas com suporte, consulte Notas de versão do SQL Server 2019 no Linux.
Advertência
Quando você para e remove um contêiner, os dados do SQL Server no contêiner são excluídos permanentemente. Para obter mais informações sobre como preservar seus dados, criar e copiar um arquivo de backup do contêiner ou usar uma técnica de persistência de dados de contêiner .
Este guia de início rápido cria contêineres do SQL Server 2019 (15.x). Se preferir criar contêineres Linux para diferentes versões do SQL Server, consulte o SQL Server 2017 (14.x) ou SQL Server 2022 (16.x) versões deste artigo.
Neste início rápido, você usa o Docker para extrair e executar a imagem de contêiner do Linux do SQL Server 2022 (16.x), mssql-server-linux. Em seguida, você pode se conectar com sqlcmd para criar seu primeiro banco de dados e executar consultas.
Para obter mais informações sobre plataformas com suporte, consulte Notas de versão do SQL Server 2022 no Linux.
Advertência
Quando você para e remove um contêiner, os dados do SQL Server no contêiner são excluídos permanentemente. Para obter mais informações sobre como preservar seus dados, criar e copiar um arquivo de backup do contêiner ou usar uma técnica de persistência de dados de contêiner .
Este início rápido cria contentores do SQL Server 2022 (16.x). Se preferir criar contêineres Linux para diferentes versões do SQL Server, consulte o SQL Server 2017 (14.x) ou SQL Server 2019 (15.x) versões deste artigo.
Esta imagem consiste em SQL Server em execução no Linux baseado no Ubuntu. Ele pode ser usado com o Docker Engine 1.8+ no Linux.
A partir do SQL Server 2022 (16.x) 14 e do SQL Server 2019 (15.x) 28, as imagens de contêiner incluem o novo pacote de mssql-tools18. O diretório anterior /opt/mssql-tools/bin
está sendo eliminado. O novo diretório para ferramentas Microsoft ODBC 18 é /opt/mssql-tools18/bin
, alinhando-se com a oferta de ferramentas mais recentes. Para obter mais informações sobre alterações e aprimoramentos de segurança, consulte ODBC Driver 18.0 for SQL Server Released.
Os exemplos neste artigo usam o comando docker
. No entanto, a maioria desses comandos também funciona com o Podman. O Podman fornece uma interface de linha de comando semelhante ao Docker Engine. Você pode saber mais sobre Podman.
Importante
sqlcmd atualmente não suporta o parâmetro MSSQL_PID
ao criar contêineres. Se você usar as instruções sqlcmd neste início rápido, criará um contêiner com a edição Developer do SQL Server. Use as instruções da interface de linha de comando (CLI) para criar um contêiner usando a licença de sua escolha. Para obter mais informações, consulte Implantar e ligar-se a contentores Linux do SQL Server.
Pré-requisitos
- Docker Engine 1.8+ em qualquer distribuição Linux suportada. Para obter mais informações, consulte Instalar o Docker.
- Para obter mais informações sobre requisitos de hardware e suporte ao processador, consulte SQL Server 2016 e 2017: Requisitos de hardware e software
- Para obter mais informações sobre requisitos de hardware e suporte ao processador, consulte SQL Server 2019: Requisitos de hardware e software
- Para obter mais informações sobre requisitos de hardware e suporte ao processador, consulte SQL Server 2022: Requisitos de hardware e software
Docker
overlay2
controlador de armazenamento. Este driver é o padrão para a maioria dos usuários. Se não estiver a usar este fornecedor de armazenamento e precisar de mudar, consulte as instruções e avisos na documentação do Docker para configurar o overlay2.Pelo menos 2 GB de espaço em disco.
Pelo menos 2 GB de RAM.
Transfira e execute a imagem do contentor do SQL Server Linux
Antes de iniciar as etapas a seguir, certifique-se de selecionar seu shell preferido (bash, PowerShellou cmd) na parte superior deste artigo.
Para os comandos bash neste artigo, sudo
é usado. Se não quiser usar sudo
para executar o Docker, você pode configurar um grupo de docker
e adicionar usuários a esse grupo. Para obter mais informações, consulte Etapas de pós-instalação para Linux.
- CLI
- sqlcmd
Puxe a imagem do contêiner do registro
Extraia a imagem do contêiner Linux do SQL Server 2017 (14.x) do Registro de contêiner da Microsoft.
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest
Este guia de início rápido cria contêineres do SQL Server 2017 (14.x). Se preferir criar contêineres Linux para diferentes versões do SQL Server, consulte o SQL Server 2019 (15.x) ou SQL Server 2022 (16.x) versões deste artigo.
O comando anterior extrai a imagem de contêiner Linux mais recente do SQL Server 2017 (14.x). Se quiser extrair uma imagem específica, adicione dois pontos e o nome da tag, como, por exemplo, mcr.microsoft.com/mssql/server:2017-GA-ubuntu
. Para ver todas as imagens disponíveis, consulte o Microsoft Artifact Registry.
Executar o contêiner
Para executar a imagem de contêiner do Linux com o Docker, você pode usar o seguinte comando em um shell bash ou prompt de comando elevado do PowerShell.
Importante
A variável de ambiente SA_PASSWORD
foi preterida. Use MSSQL_SA_PASSWORD
em vez disso.
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2017-latest
Se você estiver usando o PowerShell Core, substitua as aspas duplas por aspas simples.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2017-latest
Atenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito 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. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível. Se você não seguir esses requisitos de senha, o contêiner não poderá configurar o SQL Server e parará de funcionar. Você pode examinar o log de erros usando o comando docker logs
.
Por padrão, esse início rápido cria um contêiner com a edição Developer do SQL Server. O processo para executar edições de produção em contêineres é ligeiramente diferente. Para obter mais informações, consulte Executar imagens de contêiner de produção.
A tabela a seguir fornece uma descrição dos parâmetros no exemplo docker run
anterior:
Ver lista de contentores
Para exibir seus contêineres do Docker, use o comando
docker ps
.sudo docker ps -a
docker ps -a
docker ps -a
Você deve ver uma saída semelhante ao exemplo a seguir:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2017-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1
Se a coluna
STATUS
mostrar um status deUp
, então o SQL Server está a ser executado no contentor e a escutar na porta especificada na colunaPORTS
. Se a colunaSTATUS
do contentor do SQL Server mostrarExited
, consulte Solucionar problemas de contentores do SQL Server Docker. O servidor está pronto para conexões assim que os logs de erro do SQL Server exibirem a mensagem:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Você pode revisar o log de erros do SQL Server dentro do contêiner usando o comando:sudo docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
O parâmetro
--hostname
, conforme discutido anteriormente, altera o nome interno do contêiner para um valor personalizado. Esse valor é o nome que você vê retornado na seguinte consulta Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Definir
--hostname
e--name
com o mesmo valor é uma boa maneira de identificar facilmente o contêiner de destino.Como etapa final, altere a sua senha SA num ambiente de produção, porque o
MSSQL_SA_PASSWORD
é visível na saídaps -eax
e armazenado na variável de ambiente de mesmo nome.
Extraia e execute a imagem do contêiner do SQL Server Linux
Antes de iniciar as etapas a seguir, certifique-se de selecionar seu shell preferido (bash, PowerShellou cmd) na parte superior deste artigo.
Para os comandos bash neste artigo, sudo
é usado. Se não quiser usar sudo
para executar o Docker, você pode configurar um grupo de docker
e adicionar usuários a esse grupo. Para obter mais informações, consulte Etapas de pós-instalação para Linux.
Puxe o contêiner do registro
Puxe a imagem do contêiner Linux do SQL Server 2019 (15.x) do Registro de Contêiner da Microsoft.
docker pull mcr.microsoft.com/mssql/server:2019-latest
docker pull mcr.microsoft.com/mssql/server:2019-latest
docker pull mcr.microsoft.com/mssql/server:2019-latest
Este guia de início rápido cria contêineres do SQL Server 2019 (15.x). Se preferir criar contêineres Linux para diferentes versões do SQL Server, consulte o SQL Server 2017 (14.x) ou SQL Server 2022 (16.x) versões deste artigo.
O comando anterior extrai a imagem de contêiner Linux mais recente do SQL Server 2019 (15.x). Se quiser extrair uma imagem específica, adicione dois-pontos e o nome da etiqueta, como mcr.microsoft.com/mssql/server:2019-GA-ubuntu
. Para ver todas as imagens disponíveis, consulte o Microsoft Artifact Registry.
Executar o contêiner
Para executar a imagem de contentor do Linux com o Docker, pode-se usar o seguinte comando num shell bash ou num prompt de comando elevado do PowerShell.
Importante
A variável de ambiente SA_PASSWORD
foi preterida. Use MSSQL_SA_PASSWORD
em vez disso.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2019-latest
Se você estiver usando o PowerShell Core, substitua as aspas duplas por aspas simples.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2019-latest
Atenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito 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. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2019-latest
Atenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito 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. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível. Se você não seguir esses requisitos de senha, o contêiner não poderá configurar o SQL Server e parará de funcionar. Você pode examinar o log de erros usando o comando docker logs
.
Por padrão, esse início rápido cria um contêiner com a edição Developer do SQL Server. O processo para executar edições de produção em contêineres é ligeiramente diferente. Para obter mais informações, consulte Executar imagens de contêiner de produção.
A tabela a seguir fornece uma descrição dos parâmetros no exemplo docker run
anterior:
Ver lista de contentores
Para exibir seus contêineres do Docker, use o comando
docker ps
.docker ps -a
docker ps -a
docker ps -a
Você deve ver uma saída semelhante ao exemplo a seguir:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1
Se a coluna
STATUS
mostrar um status deUp
, o SQL Server está sendo executado no contêiner e escutando na porta especificada na colunaPORTS
. Se a colunaSTATUS
do contêiner do SQL Server mostrarExited
, consulte Solucionar problemas de contêineres do SQL Server Docker. O servidor está pronto para conexões assim que os logs de erro do SQL Server exibirem a mensagem:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Você pode revisar o log de erros do SQL Server dentro do contêiner usando o comando:docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
O parâmetro
--hostname
, conforme discutido anteriormente, altera o nome interno do contêiner para um valor personalizado. Esse valor é o nome que você vê retornado na seguinte consulta Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Definir
--hostname
e--name
com o mesmo valor é uma boa maneira de identificar facilmente o contêiner de destino.Como etapa final, altere a sua senha SA num ambiente de produção, porque o
MSSQL_SA_PASSWORD
é visível na saídaps -eax
e armazenado na variável de ambiente de mesmo nome.
Extraia e execute a imagem do contêiner do SQL Server Linux
Antes de iniciar as etapas a seguir, certifique-se de selecionar seu shell preferido (bash, PowerShellou cmd) na parte superior deste artigo.
Para os comandos bash neste artigo, sudo
é usado. Se não quiser usar sudo
para executar o Docker, você pode configurar um grupo de docker
e adicionar usuários a esse grupo. Para obter mais informações, consulte Etapas de pós-instalação para Linux.
Puxe a imagem do contêiner do registro
Extraia a imagem do contêiner Linux do SQL Server 2022 (16.x) do Registro de contêiner da Microsoft.
docker pull mcr.microsoft.com/mssql/server:2022-latest
docker pull mcr.microsoft.com/mssql/server:2022-latest
docker pull mcr.microsoft.com/mssql/server:2022-latest
Este início rápido cria contentores do SQL Server 2022 (16.x). Se preferir criar contêineres Linux para diferentes versões do SQL Server, consulte o SQL Server 2017 (14.x) ou SQL Server 2019 (15.x) versões deste artigo.
O comando anterior extrai a imagem de contêiner Linux mais recente do SQL Server 2022 (16.x). Se quiser obter uma imagem específica, adicione dois pontos e o nome da tag, como mcr.microsoft.com/mssql/server:2022-GA-ubuntu
. Para ver todas as imagens disponíveis, consulte o Microsoft Artifact Registry.
Executar o contêiner
Para executar a imagem de contentor do Linux com o Docker, pode utilizar o seguinte comando num shell bash ou num prompt de comandos elevado do PowerShell.
Importante
A variável de ambiente SA_PASSWORD
foi preterida. Use MSSQL_SA_PASSWORD
em vez disso.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2022-latest
Se você estiver usando o PowerShell Core, substitua as aspas duplas por aspas simples.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2022-latest
Atenção
A sua senha deverá seguir a política de senha padrão de do SQL Server. Por padrão, a senha deve ter pelo menos oito 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. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível. Se você não seguir esses requisitos de senha, o contêiner não poderá configurar o SQL Server e parará de funcionar. Você pode examinar o log de erros usando o comando docker logs
.
Por padrão, esse início rápido cria um contêiner com a edição Developer do SQL Server. O processo para executar edições de produção em contêineres é ligeiramente diferente. Para obter mais informações, consulte Executar imagens de contêiner de produção.
A tabela a seguir fornece uma descrição dos parâmetros no exemplo docker run
anterior:
Alterar a palavra-passe do administrador do sistema
A conta de administrador do sistema (sa
) é um administrador de sistema na instância do SQL Server que é criada durante a instalação. Depois de criar o contêiner do SQL Server, a variável de ambiente MSSQL_SA_PASSWORD
especificada pode ser detetada executando echo $MSSQL_SA_PASSWORD
no contêiner. Por motivos de segurança, você deve alterar sua senha de sa
em um ambiente de produção.
Escolha uma senha forte para usar na conta
sa
. Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito 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. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.Use o
docker exec
para executar o sqlcmd para alterar a senha usando o Transact-SQL. No exemplo a seguir, as senhas antiga e nova são lidas a partir da entrada do usuário.docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa \ -P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \ -Q "ALTER LOGIN sa WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd ` -S localhost -U sa -P "<password>" ` -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd ` -S localhost -U sa -P "<password>" ` -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
Atenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito 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. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
As versões recentes do sqlcmd são seguras por padrão. Para obter mais informações sobre criptografia de conexão, consulte utilitário sqlcmd para Windows e Conectando-se com sqlcmd para Linux e macOS. Se a conexão não for bem-sucedida, você poderá adicionar a opção
-No
a sqlcmd para especificar que a criptografia é opcional, não obrigatória.
Desative a conta SA como prática recomendada
Importante
Você precisará dessas credenciais para etapas posteriores. Certifique-se de anotar o ID de usuário e senha que você insere aqui.
Quando você se conecta à sua instância do SQL Server usando a conta de administrador do sistema (sa
) pela primeira vez após a instalação, é importante seguir estas etapas e, em seguida, desativar imediatamente a conta sa
como uma prática recomendada de segurança.
Crie um novo login e torne-o membro da função de servidor sysadmin.
Dependendo se você tem uma implantação de contêiner ou não, habilite a autenticação do Windows e crie um novo logon baseado no Windows e adicione-o à função de servidor sysadmin
. Caso contrário, crie um logon usando a autenticação do SQL Server e adicione-o à função de servidor sysadmin.
Conecte-se à instância do SQL Server usando o novo logon que você criou.
Desative a conta
sa
, conforme recomendado para as práticas recomendadas de segurança.
Ver lista de contentores
Para exibir seus contêineres do Docker, use o comando
docker ps
.docker ps -a
docker ps -a
docker ps -a
Você deve ver uma saída semelhante ao exemplo a seguir:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2022-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1
Se a coluna
STATUS
mostrar um status deUp
, o SQL Server está sendo executado no contêiner e escutando na porta especificada na colunaPORTS
. Se a colunaSTATUS
do contentor do SQL Server mostrarExited
, consulte Solucionar problemas de contentores do SQL Server Docker. O servidor está pronto para conexões assim que os logs de erro do SQL Server exibirem a mensagem:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Você pode revisar o log de erros do SQL Server dentro do contêiner usando o comando:docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
O parâmetro
--hostname
, conforme discutido anteriormente, altera o nome interno do contêiner para um valor personalizado. Esse valor é o nome que você vê retornado na seguinte consulta Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Definir
--hostname
e--name
com o mesmo valor é uma boa maneira de identificar facilmente o contêiner de destino.
Conectar-se ao SQL Server
As etapas seguintes usam o utilitário de linha de comando do SQL Server, utilitário sqlcmd, para se conectar ao SQL Server dentro do contêiner.
Use o comando
docker exec -it
para iniciar um shell bash interativo dentro do contêiner em execução. No exemplo a seguir,sql1
é o nome especificado pelo parâmetro--name
quando você criou o contêiner.docker exec -it sql1 "bash"
docker exec -it sql1 "bash"
docker exec -it sql1 "bash"
Uma vez dentro do contêiner, conecte-se localmente com sqlcmd, usando seu caminho completo.
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid> -P "<password>"
As versões recentes do sqlcmd são seguras por padrão. Para obter mais informações sobre criptografia de conexão, consulte utilitário sqlcmd para Windows e Conectando-se com sqlcmd para Linux e macOS. Se a conexão não for bem-sucedida, você poderá adicionar a opção
-No
a sqlcmd para especificar que a criptografia é opcional, não obrigatória.Você pode omitir a senha na linha de comando para que seja solicitado a inseri-la. Por exemplo:
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid>
Uma vez dentro do contêiner, conecte-se localmente com sqlcmd, usando seu caminho completo.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<password>"
As versões recentes do sqlcmd são seguras por padrão. Para obter mais informações sobre criptografia de conexão, consulte utilitário sqlcmd para Windows e Conectando-se com sqlcmd para Linux e macOS. Se a conexão não for bem-sucedida, você poderá adicionar a opção
-No
a sqlcmd para especificar que a criptografia é opcional, não obrigatória.Você pode omitir a senha na linha de comando para ser solicitado a inseri-la. Por exemplo:
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid>
Uma vez dentro do contêiner, conecte-se localmente com sqlcmd, usando seu caminho completo.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<password>"
As versões recentes do sqlcmd são seguras por padrão. Para obter mais informações sobre criptografia de conexão, consulte utilitário sqlcmd para Windows e Conectando-se com sqlcmd para Linux e macOS. Se a conexão não for bem-sucedida, você poderá adicionar a opção
-No
a sqlcmd para especificar que a criptografia é opcional, não obrigatória.Você pode omitir a senha na linha de comando para ser solicitado a introduzi-la. Por exemplo:
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid>
- Se for bem-sucedido, você deve acessar um prompt de comando do sqlcmd:
1>
.
Criar e consultar dados
As seções a seguir o orientam pelo uso e Transact-SQL sqlcmd 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 do sqlcmd, cole o seguinte comando Transact-SQL para criar um banco de dados de teste:
CREATE DATABASE TestDB;
Na próxima linha, escreva uma consulta para retornar o nome de todos os bancos de dados no servidor:
SELECT name FROM sys.databases;
Os dois comandos anteriores não foram executados imediatamente. Digite
GO
em uma nova linha para executar os comandos anteriores:GO
Inserir dados
Em seguida, crie uma nova tabela, Inventory
e insira duas novas linhas.
Na linha de comandos do sqlcmd, mude o contexto para o novo banco de dados
TestDB
: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 tabela Inventory
.
No prompt de comando do sqlcmd, insira uma consulta que retorne linhas da tabela
Inventory
onde a quantia é superior a 152.SELECT * FROM Inventory WHERE quantity > 152;
Execute o comando:
GO
Saia do prompt de comando sqlcmd
Para encerrar sua sessão de
sqlcmd, digite : QUIT
Para sair do prompt de comando interativo em seu 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
- CLI
- sqlcmd
Você também pode se conectar à instância do SQL Server em sua máquina Docker a partir de qualquer ferramenta externa do Linux, Windows ou macOS que ofereça suporte a conexões SQL. A ferramenta externa usa o endereço IP da máquina host.
Os passos seguintes usam sqlcmd fora do seu contêiner para se conectar ao SQL Server a funcionar no seu contêiner. Essas etapas pressupõem que você já tenha as ferramentas de linha de comando do SQL Server instaladas fora do contêiner. Os mesmos princípios se aplicam ao usar outras ferramentas, mas o processo de conexão é exclusivo para cada ferramenta.
Encontre o endereço IP da máquina host do contêiner, usando
ifconfig
ouip addr
.Para este exemplo, instale a ferramenta sqlcmd em sua máquina cliente. Para obter mais informações, consulte utilitário sqlcmd ou Instalar as ferramentas de linha de comando sqlcmd e bcp do SQL Server no Linux.
Execute sqlcmd especificando o endereço IP e a porta mapeada para a porta 1433 em seu contêiner. Neste exemplo, a porta é a mesma que a porta 1433 na máquina host. Se você especificou uma porta mapeada diferente na máquina host, você a usaria aqui. Você também precisa abrir a porta de entrada apropriada no firewall para permitir a conexão.
As versões recentes do sqlcmd são seguras por padrão. Se a conexão não for bem-sucedida e você estiver usando a versão 18 ou superior, poderá adicionar a opção
-No
a sqlcmd para especificar que a criptografia é opcional, não obrigatória.sudo sqlcmd -S <ip_address>,1433 -U <userid> -P "<password>"
sqlcmd -S <ip_address>,1433 -U <userid> -P "<password>"
sqlcmd -S <ip_address>,1433 -U <userid> -P "<password>"
Atenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito 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. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Executar comandos Transact-SQL. Quando terminar, digite
QUIT
.
Outras ferramentas comuns para se conectar ao SQL Server incluem:
- extensão do SQL Server para Visual Studio Code
- Usar o SQL Server Management Studio no Windows para gerenciar o SQL Server no Linux
- O que é o Azure Data Studio?
- mssql-cli (Preview)
- Gerenciar o SQL Server no Linux com o PowerShell Core
Por favor, remova o recipiente
Se desejar remover o contêiner do SQL Server usado neste tutorial, execute os seguintes comandos:
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
Demonstração do Docker
Depois de terminar de usar a imagem de contêiner do SQL Server Linux para o Docker, convém saber como o Docker é usado para melhorar o desenvolvimento e o teste. O vídeo a seguir mostra como o Docker pode ser usado em um cenário de integração e implantação contínua.
Tarefas relacionadas
Conteúdo relacionado
- Restaurar um banco de dados do SQL Server em um contêiner Linux
- Solucionar problemas de contêineres do SQL Server Docker
- repositório GitHub mssql-docker
Contribuir para a documentação de SQL
Você sabia que você mesmo pode editar conteúdo SQL? Se o fizer, não só ajudará a melhorar a nossa documentação, como também será creditado como contribuidor da página.
Para obter mais informações, consulte Como contribuir para a documentação do SQL Server