Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server sur Linux
Ce tutoriel montre comment déplacer et restaurer un fichier de sauvegarde SQL Server dans une image conteneur SQL Server 2017 (14.x) Linux exécutée sur Docker.
Ce tutoriel montre comment déplacer et restaurer un fichier de sauvegarde SQL Server dans une image conteneur SQL Server 2019 (15.x) Linux exécutée sur Docker.
Ce tutoriel montre comment déplacer et restaurer un fichier de sauvegarde SQL Server dans une image conteneur SQL Server 2022 (16.x) Linux exécutée sur Docker.
Ce tutoriel montre comment déplacer et restaurer un fichier de sauvegarde SQL Server dans une image conteneur Linux SQL Server 2025 (17.x) s’exécutant sur Docker.
- Extrayez et exécutez l’image conteneur Linux SQL Server la plus récente.
- Copiez le fichier de base de données Wide World Importers dans le conteneur.
- Restaurez la base de données dans le conteneur.
- Exécutez les instructions Transact-SQL pour afficher et modifier la base de données.
- Sauvegardez la base de données modifiée.
Prérequis
- Un runtime de conteneur installé, comme Docker ou Podman.
- Installer la dernière version de sqlcmd
- Configuration système requise pour SQL Server sur Linux
Options de déploiement
Cette section fournit des options de déploiement pour votre environnement.
sqlcmd ne prend actuellement pas en charge le paramètre MSSQL_PID lors de la création de conteneurs. Si vous utilisez les instructions sqlcmd de ce tutoriel, vous créez un conteneur avec l’édition Développeur de SQL Server. Utilisez les instructions de l’interface de ligne de commande (CLI) pour créer un conteneur à l’aide de la licence de votre choix. Pour plus d’informations, consultez Déployer et se connecter à des conteneurs Linux SQL Server.
Extraction et exécution de l’image conteneur
Ouvrez un terminal bash sur Linux.
Extrayez l’image conteneur Linux de SQL Server 2017 (14.x) à partir de Microsoft Azure Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2017-latestPour exécuter l’image conteneur avec Docker, vous pouvez utiliser la commande suivante :
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-latestAttention
Votre mot de passe doit suivre la politique de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.
Cette commande crée un conteneur SQL Server 2017 (14.x) avec l’édition Développeur (par défaut). Le port SQL Server
1433est exposé sur l’hôte en tant que port1401. Le paramètre-v sql1data:/var/opt/mssqlfacultatif crée un conteneur de volumes de données nommésql1data. Il est utilisé pour rendre persistantes les données créées par SQL Server.Important
Cet exemple utilise un conteneur de volume de données dans Docker. Pour plus d’informations, consultez Configurer des images de conteneur SQL Server sur Docker.
Pour afficher vos conteneurs, utilisez la commande
docker ps.sudo docker ps -aSi la colonne
STATUSafficheUp, SQL Server est en cours d’exécution dans le conteneur et écoute sur le port spécifié dans la colonnePORTS. Si la colonneSTATUSde votre conteneur SQL Server indiqueExited, consultez Résolution des problèmes liés aux conteneurs Docker SQL Server.
$ 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
Ouvrez un terminal bash sur Linux.
Extrayez l’image conteneur Linux de SQL Server 2019 (15.x) à partir de Microsoft Azure Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2019-latestPour exécuter l’image conteneur avec Docker, vous pouvez utiliser la commande suivante :
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-latestAttention
Votre mot de passe doit suivre la politique de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.
Cette commande crée un conteneur SQL Server 2019 (15.x) avec l’édition Développeur (par défaut). Le port SQL Server
1433est exposé sur l’hôte en tant que port1401. Le paramètre-v sql1data:/var/opt/mssqlfacultatif crée un conteneur de volumes de données nommésql1data. Il est utilisé pour rendre persistantes les données créées par SQL Server.Important
Cet exemple utilise un conteneur de volume de données dans Docker. Pour plus d’informations, consultez Configurer des images de conteneur SQL Server sur Docker.
Pour afficher vos conteneurs, utilisez la commande
docker ps.sudo docker ps -aSi la colonne
STATUSafficheUp, SQL Server est en cours d’exécution dans le conteneur et écoute sur le port spécifié dans la colonnePORTS. Si la colonneSTATUSde votre conteneur SQL Server indiqueExited, consultez Résolution des problèmes liés aux conteneurs Docker SQL Server.$ 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
Ouvrez un terminal bash sur Linux.
Tirez (pull) l’image conteneur Linux de SQL Server 2022 (16.x) à partir de Microsoft Azure Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2022-latestPour exécuter l’image conteneur avec Docker, vous pouvez utiliser la commande suivante :
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-latestAttention
Votre mot de passe doit suivre la politique de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.
Cette commande crée un conteneur SQL Server 2022 (16.x) avec l’édition Développeur (par défaut). Le port SQL Server
1433est exposé sur l’hôte en tant que port1401. Le paramètre-v sql1data:/var/opt/mssqlfacultatif crée un conteneur de volumes de données nommésql1data. Il est utilisé pour rendre persistantes les données créées par SQL Server.Important
Cet exemple utilise un conteneur de volume de données dans Docker. Pour plus d’informations, consultez Configurer des images de conteneur SQL Server sur Docker.
Pour afficher vos conteneurs, utilisez la commande
docker ps.sudo docker ps -aSi la colonne
STATUSafficheUp, SQL Server est en cours d’exécution dans le conteneur et écoute sur le port spécifié dans la colonnePORTS. Si la colonneSTATUSde votre conteneur SQL Server indiqueExited, consultez Résolution des problèmes liés aux conteneurs Docker SQL Server.$ 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
Ouvrez un terminal bash sur Linux.
Extrayez l’image conteneur Linux SQL Server 2025 (17.x) à partir de Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2025-latestPour exécuter l’image conteneur avec Docker, vous pouvez utiliser la commande suivante :
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-latestAttention
Votre mot de passe doit suivre la politique de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.
Cette commande crée un conteneur SQL Server 2025 (17.x) avec l’édition Développeur (par défaut). Le port SQL Server
1433est exposé sur l’hôte en tant que port1401. Le paramètre-v sql1data:/var/opt/mssqlfacultatif crée un conteneur de volumes de données nommésql1data. Il est utilisé pour rendre persistantes les données créées par SQL Server.Important
Cet exemple utilise un conteneur de volume de données dans Docker. Pour plus d’informations, consultez Configurer des images de conteneur SQL Server sur Docker.
Pour afficher vos conteneurs, utilisez la commande
docker ps.sudo docker ps -aSi la colonne
STATUSafficheUp, SQL Server est en cours d’exécution dans le conteneur et écoute sur le port spécifié dans la colonnePORTS. Si la colonneSTATUSde votre conteneur SQL Server indiqueExited, consultez Résolution des problèmes liés aux conteneurs Docker SQL Server.$ 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
Modifier le mot de passe administrateur système (SA)
Le compte sa est un administrateur système sur l’instance SQL Server qui est créée lors de l’installation. Une fois le conteneur SQL Server créé, la variable d’environnement MSSQL_SA_PASSWORD que vous avez spécifiée peut être découverte en exécutant echo $MSSQL_SA_PASSWORD dans le conteneur. Pour des raisons de sécurité, changez votre mot de passe sa :
Choisissez un mot de passe fort à utiliser pour le compte
sa. Votre mot de passe doit suivre la politique de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.Utilisez
docker execpour exécuter l’utilitaire sqlcmd afin de modifier le mot de passe à l’aide d’une instruction Transact-SQL. Remplacez<old-password>et<new-password>par les valeurs de vos propres mots de passe :Important
La variable d’environnement
SA_PASSWORDest dépréciée. UtilisezMSSQL_SA_PASSWORDà la place.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>'"
Copier un fichier de sauvegarde dans le conteneur
Ce tutoriel utilise l’exemple de bases de données World Wide Importers pour Microsoft SQL. Procédez comme suit pour télécharger et copier le fichier de sauvegarde de la base de données Wide World Importers dans votre conteneur SQL Server.
Tout d’abord, utilisez
docker execpour créer un dossier de sauvegarde. La commande suivante crée un répertoire/var/opt/mssql/backupdans le conteneur SQL Server.sudo docker exec -it sql1 mkdir /var/opt/mssql/backupEnsuite, téléchargez le fichier WideWorldImporters-Full.bak sur votre ordinateur hôte. Les commandes suivantes permettent d’accéder au répertoire d’accueil/d’utilisateur et de télécharger le fichier de sauvegarde sous le nom
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'Utilisez
docker cppour copier le fichier de sauvegarde dans le conteneur du répertoire/var/opt/mssql/backup.sudo docker cp wwi.bak sql1:/var/opt/mssql/backup
Restaurer la base de données
Le fichier de sauvegarde se trouve maintenant dans le conteneur. Avant de restaurer la sauvegarde, il est important de connaître les noms de fichiers logiques et les types de fichiers à l’intérieur de la sauvegarde. Les commandes Transact-SQL suivantes inspectent la sauvegarde et effectuent la restauration à l’aide de sqlcmd dans le conteneur.
Conseil
Ce tutoriel utilise sqlcmd à l’intérieur du conteneur, car le conteneur est fourni avec cet outil préinstallé. Toutefois, vous pouvez également exécuter des instructions Transact-SQL avec d’autres outils clients en dehors du conteneur, par exemple Extension SQL Server pour Visual Studio Code ou Utiliser SQL Server Management Studio sous Windows pour gérer SQL Server sous Linux. Pour vous connecter, utilisez le port hôte qui a été mappé au port 1433 dans le conteneur. Dans cet exemple, l’hôte et le port sont localhost,1401 sur l’ordinateur hôte et Host_IP_Address,1401 à distance.
Exécutez sqlcmd à l’intérieur du conteneur pour répertorier les noms de fichiers logiques et les chemins d’accès à l’intérieur de la sauvegarde. Cette opération s’effectue à l’aide de l’instruction Transact-SQL
RESTORE FILELISTONLY.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-2Les résultats doivent ressembler à la sortie suivante :
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_1Appelez la commande
RESTORE DATABASEpour restaurer la base de données à l’intérieur du conteneur. Spécifiez de nouveaux chemins d’accès pour chacun des fichiers de l’étape précédente.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"'Les résultats doivent ressembler à la sortie suivante :
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).
Vérifier la base de données restaurée
Exécutez la requête suivante pour afficher une liste de noms de base de données dans votre conteneur :
sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P '<new-password>' \
-Q 'SELECT name FROM sys.databases'
Vous devez voir WideWorldImporters dans la liste des bases de données.
Apporter une modification
Procédez comme suit pour apporter une modification à la base de données.
Exécutez une requête pour afficher les 10 premiers éléments de la table
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'Vous devez voir une liste de noms et d’identificateurs d’élément :
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 barMettez à jour la description du premier élément à l’aide de l’instruction
UPDATEsuivante :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'Le résultat doit ressembler au texte qui suit :
(1 rows affected) StockItemID StockItemName ----------- ------------------------------------ 1 USB missile launcher (Dark Green)
Créer une nouvelle sauvegarde
Après avoir restauré votre base de données dans un conteneur, vous pouvez également créer régulièrement des sauvegardes de base de données à l’intérieur du conteneur en cours d’exécution. Les étapes suivent un modèle similaire aux étapes précédentes, mais en sens inverse.
Utilisez la commande
BACKUP DATABASETransact-SQL pour créer une sauvegarde de base de données dans le conteneur. Ce tutoriel crée un fichier de sauvegardewwi_2.bakdans le répertoire/var/opt/mssql/backupcréé précédemment.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"Les résultats doivent ressembler à la sortie suivante :
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).Ensuite, copiez le fichier de sauvegarde à partir du conteneur et sur votre ordinateur hôte.
cd ~ sudo docker cp sql1:/var/opt/mssql/backup/wwi_2.bak wwi_2.bak ls -l wwi*
Utiliser les données persistantes
Outre la réalisation de sauvegardes de base de données pour protéger vos données, vous pouvez également utiliser des conteneurs de volume de données. Le début de ce tutoriel a créé le conteneur sql1 avec le paramètre -v sql1data:/var/opt/mssql. Le conteneur de volume de données sql1data persiste les données /var/opt/mssql, même après la suppression du conteneur. Les étapes suivantes suppriment complètement le conteneur sql1 puis créent un nouveau conteneur sql2 avec les données persistantes.
Arrêtez le conteneur
sql1.sudo docker stop sql1Supprimez le conteneur. Cela ne supprime pas le conteneur de volume de données
sql1dataprécédemment créé ni les données persistantes qu’il contient.sudo docker rm sql1Créez un conteneur
sql2et réutilisez le conteneur de volume de donnéessql1data.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-latestLa base de données Wide World Importers se trouve à présent dans le nouveau conteneur. Exécutez une requête pour vérifier la modification que vous avez apportée précédemment.
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'Le mot de passe
san'est pas le mot de passe que vous avez spécifié pour le conteneursql2,MSSQL_SA_PASSWORD=<password>. Toutes les données SQL Server ont été restaurées à partir desql1, notamment le mot de passe modifié précédemment dans le tutoriel. En effet, certaines options comme celle-ci sont ignorées en raison de la restauration des données dans /var/opt/mssql. C’est la raison pour laquelle le mot de passe<new-password>est affiché ici.
Arrêtez le conteneur
sql1.sudo docker stop sql1Supprimez le conteneur. Cela ne supprime pas le conteneur de volume de données
sql1dataprécédemment créé ni les données persistantes qu’il contient.sudo docker rm sql1Créez un conteneur
sql2et réutilisez le conteneur de volume de donnéessql1data.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-latestLa base de données Wide World Importers se trouve à présent dans le nouveau conteneur. Exécutez une requête pour vérifier la modification que vous avez apportée précédemment.
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'Le mot de passe
san'est pas le mot de passe que vous avez spécifié pour le conteneursql2,MSSQL_SA_PASSWORD=<password>. Toutes les données SQL Server ont été restaurées à partir desql1, notamment le mot de passe modifié précédemment dans le tutoriel. En effet, certaines options comme celle-ci sont ignorées en raison de la restauration des données dans /var/opt/mssql. C’est la raison pour laquelle le mot de passe<new-password>est affiché ici.
Arrêtez le conteneur
sql1.sudo docker stop sql1Supprimez le conteneur. Cela ne supprime pas le conteneur de volume de données
sql1dataprécédemment créé ni les données persistantes qu’il contient.sudo docker rm sql1Créez un conteneur
sql2et réutilisez le conteneur de volume de donnéessql1data.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-latestLa base de données Wide World Importers se trouve à présent dans le nouveau conteneur. Exécutez une requête pour vérifier la modification que vous avez apportée précédemment.
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'Le mot de passe
san'est pas le mot de passe que vous avez spécifié pour le conteneursql2,MSSQL_SA_PASSWORD=<password>. Toutes les données SQL Server ont été restaurées à partir desql1, notamment le mot de passe modifié précédemment dans le tutoriel. En effet, certaines options comme celle-ci sont ignorées en raison de la restauration des données dans/var/opt/mssql. C’est la raison pour laquelle le mot de passe<new-password>est affiché ici.
Arrêtez le conteneur
sql1.sudo docker stop sql1Supprimez le conteneur. Cela ne supprime pas le conteneur de volume de données
sql1dataprécédemment créé ni les données persistantes qu’il contient.sudo docker rm sql1Créez un conteneur
sql2et réutilisez le conteneur de volume de donnéessql1data.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-latestLa base de données Wide World Importers se trouve à présent dans le nouveau conteneur. Exécutez une requête pour vérifier la modification que vous avez apportée précédemment.
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'Le mot de passe
san'est pas le mot de passe que vous avez spécifié pour le conteneursql2,MSSQL_SA_PASSWORD=<password>. Toutes les données SQL Server ont été restaurées à partir desql1, notamment le mot de passe modifié précédemment dans le tutoriel. En effet, certaines options comme celle-ci sont ignorées en raison de la restauration des données dans/var/opt/mssql. C’est la raison pour laquelle le mot de passe<new-password>est affiché ici.
Attention
Votre mot de passe doit suivre la politique de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.
Étape suivante
Dans ce tutoriel, vous avez appris à sauvegarder une base de données sur Windows et à la déplacer vers un serveur Linux exécutant SQL Server 2017 (14.x) dans un conteneur. Vous avez appris à :
Dans ce tutoriel, vous avez appris à sauvegarder une base de données sur Windows et à la déplacer vers un serveur Linux exécutant SQL Server 2019 (15.x) dans un conteneur. Vous avez appris à :
Dans ce tutoriel, vous avez appris à sauvegarder une base de données sur Windows et à la déplacer vers un serveur Linux exécutant SQL Server 2022 (16.x) dans un conteneur. Vous avez appris à :
Dans ce tutoriel, vous avez appris à sauvegarder une base de données sur Windows et à la déplacer vers un serveur Linux exécutant SQL Server 2025 (17.x) dans un conteneur. Vous avez appris à :
- Créer des images conteneurs SQL Server Linux.
- Copier les sauvegardes de base de données SQL Server dans un conteneur.
- Exécuter les instructions Transact-SQL avec sqlcmd.
- Créer et extraire des fichiers de sauvegarde à partir d’un conteneur.
- Utiliser des conteneurs de volume de données pour rendre persistantes les données de production SQL Server.
Ensuite, consultez les autres scénarios de configuration et de résolution des problèmes de conteneur :
Contribuer à la documentation SQL
Saviez-vous que vous pouvez modifier le contenu SQL vous-même ? Dans ce cas, non seulement vous nous aidez à améliorer notre documentation, mais vous êtes également cité en tant que contributeur à la page.
Pour plus d’informations, consultez Modifier la documentation Microsoft Learn.