Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server no Linux
Este tutorial demonstra como mover e restaurar um arquivo de backup do SQL Server para uma imagem de contêiner do SQL Server 2017 (14.x) em Linux em execução no Docker.
Este tutorial demonstra como mover e restaurar um arquivo de backup do SQL Server para uma imagem de contêiner do SQL Server 2019 (15.x) em Linux em execução no Docker.
Este tutorial demonstra como mover e restaurar um arquivo de backup do SQL Server para uma imagem de contêiner do SQL Server 2022 (16.x) em Linux em execução no Docker.
Este tutorial demonstra como mover e restaurar um arquivo de backup do SQL Server em uma imagem de contêiner linux do SQL Server 2025 (17.x) em execução no Docker.
- Efetuar pull e executar a imagem de contêiner mais recente do SQL Server em Linux.
- Copie o arquivo de banco de dados da Wide World Importers para o contêiner.
- Restaure o banco de dados no contêiner.
- Execute instruções Transact-SQL para exibir e modificar o banco de dados.
- Faça backup do banco de dados modificado.
Pré-requisitos
- Um tempo de execução de contêiner instalado, como Docker ou Podman
- Instalar o sqlcmd mais recente
- Requisitos do sistema do SQL Server em Linux
Opções de implantação
Esta seção fornece opções de implantação para seu ambiente.
No momento, o sqlcmd não oferece suporte ao parâmetro MSSQL_PID ao criar contêineres. Se usar as instruções sqlcmd neste tutorial, você cria 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 contêineres do SQL Server no Linux e conectar-se a eles.
Efetuar o pull e executar a imagem de contêiner
Abra um terminal bash no Linux.
Efetue pull da imagem de contêiner do SQL Server 2017 (14.x) Linux no Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2017-latestPara executar a imagem de contêiner com o Docker, você pode usar o seguinte comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2017-latestCuidado
Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.
Esse comando cria um contêiner do SQL Server 2017 (14.x) com a Developer Edition (padrão). A porta do SQL Server
1433é exposta no host como a porta1401. O parâmetro-v sql1data:/var/opt/mssqlopcional cria um contêiner de volume de dados chamadosql1data. Isso é usado para persistir os dados criados pelo SQL Server.Importante
Este exemplo usa um contêiner de volume de dados no Docker. Para obter mais informações, confira Configurar imagens de contêiner do SQL Server no Docker.
Para exibir seus contêineres, use o comando
docker ps.sudo docker ps -aSe a coluna
STATUSmostrar o statusUp, o SQL Server estará em execução no contêiner e será escutado na porta especificada na colunaPORTS. Se a colunaSTATUSdo contêiner do SQL Server mostrarExited, confira Solução de problemas de contêineres do SQL Server no Docker.
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
941e1bdf8e1d mcr.microsoft.com/mssql/server/mssql-server-linux "/bin/sh -c /opt/m..." About an hour ago Up About an hour 0.0.0.0:1401->1433/tcp sql1
Abra um terminal bash no Linux.
Efetue pull da imagem de contêiner do SQL Server 2019 (15.x) Linux no Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2019-latestPara executar a imagem de contêiner com o Docker, você pode usar o seguinte comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2019-latestCuidado
Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.
Esse comando cria um contêiner do SQL Server 2019 (15.x) com a Developer Edition (padrão). A porta do SQL Server
1433é exposta no host como a porta1401. O parâmetro-v sql1data:/var/opt/mssqlopcional cria um contêiner de volume de dados chamadosql1data. Isso é usado para persistir os dados criados pelo SQL Server.Importante
Este exemplo usa um contêiner de volume de dados no Docker. Para obter mais informações, confira Configurar imagens de contêiner do SQL Server no Docker.
Para exibir seus contêineres, use o comando
docker ps.sudo docker ps -aSe a coluna
STATUSmostrar o statusUp, o SQL Server estará em execução no contêiner e será escutado na porta especificada na colunaPORTS. Se a colunaSTATUSdo contêiner do SQL Server mostrarExited, confira Solução de problemas de contêineres do SQL Server no Docker.$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 941e1bdf8e1d mcr.microsoft.com/mssql/server/mssql-server-linux "/bin/sh -c /opt/m..." About an hour ago Up About an hour 0.0.0.0:1401->1433/tcp sql1
Abra um terminal bash no Linux.
Efetue pull da imagem de contêiner do SQL Server 2022 (16.x) Linux no Registro de Contêiner da Microsoft.
sudo docker pull mcr.microsoft.com/mssql/server:2022-latestPara executar a imagem de contêiner com o Docker, você pode usar o seguinte comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2022-latestCuidado
Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.
Esse comando cria um contêiner do SQL Server 2022 (16.x) com a Developer Edition (padrão). A porta do SQL Server
1433é exposta no host como a porta1401. O parâmetro-v sql1data:/var/opt/mssqlopcional cria um contêiner de volume de dados chamadosql1data. Isso é usado para persistir os dados criados pelo SQL Server.Importante
Este exemplo usa um contêiner de volume de dados no Docker. Para obter mais informações, confira Configurar imagens de contêiner do SQL Server no Docker.
Para exibir seus contêineres, use o comando
docker ps.sudo docker ps -aSe a coluna
STATUSmostrar o statusUp, o SQL Server estará em execução no contêiner e será escutado na porta especificada na colunaPORTS. Se a colunaSTATUSdo contêiner do SQL Server mostrarExited, confira Solução de problemas de contêineres do SQL Server no Docker.$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 941e1bdf8e1d mcr.microsoft.com/mssql/server/mssql-server-linux "/bin/sh -c /opt/m..." About an hour ago Up About an hour 0.0.0.0:1401->1433/tcp sql1
Abra um terminal bash no Linux.
Baixe a imagem de contêiner Linux do SQL Server 2025 (17.x) no Registro de Contêiner da Microsoft.
sudo docker pull mcr.microsoft.com/mssql/server:2025-latestPara executar a imagem de contêiner com o Docker, você pode usar o seguinte comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2025-latestCuidado
Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.
Esse comando cria um contêiner do SQL Server 2025 (17.x) com a edição Developer (padrão). A porta do SQL Server
1433é exposta no host como a porta1401. O parâmetro-v sql1data:/var/opt/mssqlopcional cria um contêiner de volume de dados chamadosql1data. Isso é usado para persistir os dados criados pelo SQL Server.Importante
Este exemplo usa um contêiner de volume de dados no Docker. Para obter mais informações, confira Configurar imagens de contêiner do SQL Server no Docker.
Para exibir seus contêineres, use o comando
docker ps.sudo docker ps -aSe a coluna
STATUSmostrar o statusUp, o SQL Server estará em execução no contêiner e será escutado na porta especificada na colunaPORTS. Se a colunaSTATUSdo contêiner do SQL Server mostrarExited, confira Solução de problemas de contêineres do SQL Server no Docker.$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 941e1bdf8e1d mcr.microsoft.com/mssql/server/mssql-server-linux "/bin/sh -c /opt/m..." About an hour ago Up About an hour 0.0.0.0:1401->1433/tcp sql1
Alterar a senha de SA (administrador do sistema)
A conta sa é um administrador do 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 é detectável executando echo $MSSQL_SA_PASSWORD no contêiner. Por motivos de segurança, altere a senha de sa:
Escolha uma senha forte para usar na conta
sa. Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.Use
docker execpara executar o utilitário sqlcmd para alterar a senha por meio de uma instrução Transact-SQL. Substituir<old-password>e<new-password>com seus próprios valores de senha:Importante
A variável de ambiente
SA_PASSWORDfoi preterida. UseMSSQL_SA_PASSWORDem vez disso.sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U sa -P '<old-password>' \ -Q 'ALTER LOGIN sa WITH PASSWORD="<new-password>"'docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd ` -S localhost -U sa -P "<old-password>" ` -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
Copiar um arquivo de backup para o contêiner
Este tutorial usa os bancos de dados de exemplo da Wide World Importers para Microsoft SQL. Use as etapas a seguir para baixar e copiar o arquivo de backup do banco de dados da Wide World Importers para seu contêiner do SQL Server.
Primeiro, use o
docker execpara criar uma pasta de backup. O comando a seguir cria um diretório/var/opt/mssql/backupdentro do contêiner do SQL Server.sudo docker exec -it sql1 mkdir /var/opt/mssql/backupEm seguida, baixe o arquivo WideWorldImporters-Full.bak no computador host. Os comandos a seguir navegam até o diretório home/user e baixam o arquivo de backup como
wwi.bak.cd ~ curl -L -o wwi.bak 'https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak'Use o
docker cppara copiar o arquivo de backup para o contêiner no diretório/var/opt/mssql/backup.sudo docker cp wwi.bak sql1:/var/opt/mssql/backup
Restaurar o banco de dados
O arquivo de backup agora está localizado dentro do contêiner. Antes de restaurar o backup, é importante saber os nomes do arquivo lógico e os tipos de arquivo dentro do backup. Os comandos Transact-SQL a seguir inspecionam o backup e executam a restauração usando sqlcmd no contêiner.
Dica
Este tutorial usa sqlcmd dentro do contêiner, pois o contêiner vem com essa ferramenta pré-instalada. No entanto, você também pode executar instruções do Transact-SQL com outras ferramentas de cliente fora do contêiner, como Extensão do SQL Server para Visual Studio Code ou Usar o SQL Server Management Studio no Windows para gerenciar o SQL Server no Linux. Para conectar-se, use a porta do host que foi mapeada para a porta 1433 no contêiner. Neste exemplo, o host e a porta estão localhost,1401 no computador host e Host_IP_Address,1401 remotamente.
Execute o sqlcmd dentro do contêiner para listar nomes de arquivos lógicos e caminhos dentro do backup. Isso é feito com a instrução
RESTORE FILELISTONLYdo Transact-SQL.sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd -S localhost \ -U sa -P '<new-password>' \ -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/wwi.bak"' \ | tr -s ' ' | cut -d ' ' -f 1-2Os resultados serão parecidos com a seguinte saída:
LogicalName PhysicalName ------------------------------------------ WWI_Primary D:\Data\WideWorldImporters.mdf WWI_UserData D:\Data\WideWorldImporters_UserData.ndf WWI_Log E:\Log\WideWorldImporters.ldf WWI_InMemory_Data_1 D:\Data\WideWorldImporters_InMemory_Data_1Chame o comando
RESTORE DATABASEpara restaurar o banco de dados dentro do contêiner. Especifique novos caminhos para cada um dos arquivos na etapa anterior.sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'RESTORE DATABASE WideWorldImporters FROM DISK = "/var/opt/mssql/backup/wwi.bak" WITH MOVE "WWI_Primary" TO "/var/opt/mssql/data/WideWorldImporters.mdf", MOVE "WWI_UserData" TO "/var/opt/mssql/data/WideWorldImporters_userdata.ndf", MOVE "WWI_Log" TO "/var/opt/mssql/data/WideWorldImporters.ldf", MOVE "WWI_InMemory_Data_1" TO "/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1"'Os resultados serão parecidos com a seguinte saída:
Processed 1464 pages for database 'WideWorldImporters', file 'WWI_Primary' on file 1. Processed 53096 pages for database 'WideWorldImporters', file 'WWI_UserData' on file 1. Processed 33 pages for database 'WideWorldImporters', file 'WWI_Log' on file 1. Processed 3862 pages for database 'WideWorldImporters', file 'WWI_InMemory_Data_1' on file 1. Converting database 'WideWorldImporters' from version 852 to the current version 869. Database 'WideWorldImporters' running the upgrade step from version 852 to version 853. Database 'WideWorldImporters' running the upgrade step from version 853 to version 854. Database 'WideWorldImporters' running the upgrade step from version 854 to version 855. Database 'WideWorldImporters' running the upgrade step from version 855 to version 856. Database 'WideWorldImporters' running the upgrade step from version 856 to version 857. Database 'WideWorldImporters' running the upgrade step from version 857 to version 858. Database 'WideWorldImporters' running the upgrade step from version 858 to version 859. Database 'WideWorldImporters' running the upgrade step from version 859 to version 860. Database 'WideWorldImporters' running the upgrade step from version 860 to version 861. Database 'WideWorldImporters' running the upgrade step from version 861 to version 862. Database 'WideWorldImporters' running the upgrade step from version 862 to version 863. Database 'WideWorldImporters' running the upgrade step from version 863 to version 864. Database 'WideWorldImporters' running the upgrade step from version 864 to version 865. Database 'WideWorldImporters' running the upgrade step from version 865 to version 866. Database 'WideWorldImporters' running the upgrade step from version 866 to version 867. Database 'WideWorldImporters' running the upgrade step from version 867 to version 868. Database 'WideWorldImporters' running the upgrade step from version 868 to version 869. RESTORE DATABASE successfully processed 58455 pages in 18.069 seconds (25.273 MB/sec).
Verifique o banco de dados restaurado
Execute a consulta a seguir para exibir uma lista de nomes de banco de dados em seu contêiner:
sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P '<new-password>' \
-Q 'SELECT name FROM sys.databases'
Você deve ver WideWorldImporters na listagem dos dados na tabela.
Fazer uma alteração
Siga estas etapas para fazer uma alteração no banco de dados.
Execute uma consulta para exibir os 10 principais itens na tabela
Warehouse.StockItems.sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT TOP 10 StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems ORDER BY StockItemID'Você deverá ver uma lista de identificadores e nomes de itens:
StockItemID StockItemName ----------- ----------------- 1 USB missile launcher (Green) 2 USB rocket launcher (Gray) 3 Office cube periscope (Black) 4 USB food flash drive - sushi roll 5 USB food flash drive - hamburger 6 USB food flash drive - hot dog 7 USB food flash drive - pizza slice 8 USB food flash drive - dim sum 10 drive variety pack 9 USB food flash drive - banana 10 USB food flash drive - chocolate barAtualize a descrição do primeiro item com a seguinte instrução
UPDATE:sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'UPDATE WideWorldImporters.Warehouse.StockItems SET StockItemName="USB missile launcher (Dark Green)" WHERE StockItemID=1; SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'Você deverá ver um resultado semelhante ao texto abaixo:
(1 rows affected) StockItemID StockItemName ----------- ------------------------------------ 1 USB missile launcher (Dark Green)
Criar um novo backup
Depois de restaurar seu banco de dados em um contêiner, talvez você também queira criar regularmente backups de banco de dados dentro do contêiner em execução. As etapas seguem um padrão semelhante aos das etapas anteriores, mas na ordem inversa.
Use o comando do Transact-SQL
BACKUP DATABASEpara criar um backup de banco de dados no contêiner. Este tutorial cria um novo arquivo de backup,wwi_2.bak, no diretório/var/opt/mssql/backupcriado anteriormente.sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q "BACKUP DATABASE [WideWorldImporters] TO DISK = N'/var/opt/mssql/backup/wwi_2.bak' WITH NOFORMAT, NOINIT, NAME = 'WideWorldImporters-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"Os resultados serão parecidos com a seguinte saída:
10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. Processed 1200 pages for database 'WideWorldImporters', file 'WWI_Primary' on file 1. Processed 53096 pages for database 'WideWorldImporters', file 'WWI_UserData' on file 1. 80 percent processed. Processed 3865 pages for database 'WideWorldImporters', file 'WWI_InMemory_Data_1' on file 1. Processed 938 pages for database 'WideWorldImporters', file 'WWI_Log' on file 1. 100 percent processed. BACKUP DATABASE successfully processed 59099 pages in 25.056 seconds (18.427 MB/sec).Em seguida, copie o arquivo de backup do contêiner para o computador host.
cd ~ sudo docker cp sql1:/var/opt/mssql/backup/wwi_2.bak wwi_2.bak ls -l wwi*
Usar os dados persistentes
Além de usar os backups de banco de dados para proteger seus dados, você também pode usar contêineres de volume de dados. O início deste tutorial criou o contêiner sql1 com o parâmetro -v sql1data:/var/opt/mssql. O contêiner de volume de dados sql1data persiste os dados de /var/opt/mssql mesmo depois que o contêiner é removido. As etapas a seguir removem completamente o contêiner sql1 e, em seguida, criam um novo contêiner, sql2, com os dados persistentes.
Pare o contêiner
sql1.sudo docker stop sql1Remova o contêiner. Isso não exclui o contêiner de volume de dados
sql1datacriado anteriormente nem os dados persistentes nele.sudo docker rm sql1Crie um novo contêiner,
sql2, e reutilize o contêiner de volume de dadossql1data.sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latestO banco de dados de Importadores Mundiais agora está no novo contêiner. Execute uma consulta para verificar a alteração anterior feita.
sudo docker exec -it sql2 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'A senha de
sanão é a mesma que você especificou para o contêiner dosql2,MSSQL_SA_PASSWORD=<password>. Todos os dados do SQL Server foram restaurados desql1, incluindo a senha alterada de antes no tutorial. Na verdade, algumas opções como essa são ignoradas devido à restauração dos dados em /var/opt/mssql. Por esse motivo, a senha é<new-password>, como mostrado aqui.
Pare o contêiner
sql1.sudo docker stop sql1Remova o contêiner. Isso não exclui o contêiner de volume de dados
sql1datacriado anteriormente nem os dados persistentes nele.sudo docker rm sql1Crie um novo contêiner,
sql2, e reutilize o contêiner de volume de dadossql1data.sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latestO banco de dados de Importadores Mundiais agora está no novo contêiner. Execute uma consulta para verificar a alteração anterior feita.
sudo docker exec -it sql2 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'A senha de
sanão é a mesma que você especificou para o contêiner dosql2,MSSQL_SA_PASSWORD=<password>. Todos os dados do SQL Server foram restaurados desql1, incluindo a senha alterada de antes no tutorial. Na verdade, algumas opções como essa são ignoradas devido à restauração dos dados em /var/opt/mssql. Por esse motivo, a senha é<new-password>, como mostrado aqui.
Pare o contêiner
sql1.sudo docker stop sql1Remova o contêiner. Isso não exclui o contêiner de volume de dados
sql1datacriado anteriormente nem os dados persistentes nele.sudo docker rm sql1Crie um novo contêiner,
sql2, e reutilize o contêiner de volume de dadossql1data.sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latestO banco de dados de Importadores Mundiais agora está no novo contêiner. Execute uma consulta para verificar a alteração anterior feita.
sudo docker exec -it sql2 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'A senha de
sanão é a mesma que você especificou para o contêiner dosql2,MSSQL_SA_PASSWORD=<password>. Todos os dados do SQL Server foram restaurados desql1, incluindo a senha alterada de antes no tutorial. Na verdade, algumas opções como essa são ignoradas devido à restauração dos dados em/var/opt/mssql. Por esse motivo, a senha é<new-password>, como mostrado aqui.
Pare o contêiner
sql1.sudo docker stop sql1Remova o contêiner. Isso não exclui o contêiner de volume de dados
sql1datacriado anteriormente nem os dados persistentes nele.sudo docker rm sql1Crie um novo contêiner,
sql2, e reutilize o contêiner de volume de dadossql1data.sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2025-latestO banco de dados de Importadores Mundiais agora está no novo contêiner. Execute uma consulta para verificar a alteração anterior feita.
sudo docker exec -it sql2 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'A senha de
sanão é a mesma que você especificou para o contêiner dosql2,MSSQL_SA_PASSWORD=<password>. Todos os dados do SQL Server foram restaurados desql1, incluindo a senha alterada de antes no tutorial. Na verdade, algumas opções como essa são ignoradas devido à restauração dos dados em/var/opt/mssql. Por esse motivo, a senha é<new-password>, como mostrado aqui.
Cuidado
Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas longas e complexas.
Próxima etapa
Neste tutorial, você aprendeu como fazer backup de um banco de dados no Windows e movê-lo para um servidor Linux executando o SQL Server 2017 (14.x) em um contêiner. Você aprendeu a:
Neste tutorial, você aprendeu como fazer backup de um banco de dados no Windows e movê-lo para um servidor Linux executando o SQL Server 2019 (15.x) em um contêiner. Você aprendeu a:
Neste tutorial, você aprendeu como fazer backup de um banco de dados no Windows e movê-lo para um servidor Linux executando o SQL Server 2022 (16.x) em um contêiner. Você aprendeu a:
Neste tutorial, você aprendeu a fazer backup de um banco de dados no Windows e movê-lo para um servidor Linux executando o SQL Server 2025 (17.x) em um contêiner. Você aprendeu a:
- Crie imagens de contêiner do Linux do SQL Server.
- Copie backups de banco de dados do SQL Server para um contêiner.
- Execute instruções Transact-SQL com sqlcmd.
- Crie e extraia arquivos de backup de um contêiner.
- Use contêineres de volume de dados para persistir os dados de produção do SQL Server.
Em seguida, examine outros cenários de configuração e solução de problemas de contêiner:
Contribua com a documentação do SQL
Você sabia que pode editar conteúdo do SQL por conta própria? Ao fazer isso, além de melhorar nossa documentação, você também será creditado como um colaborador da página.
Para obter mais informações, consulte Editar a documentação do Microsoft Learn.