Événement
31 mars, 23 h - 2 avr., 23 h
Le plus grand événement d’apprentissage SQL, Fabric et Power BI. 31 mars au 2 avril. Utilisez le code FABINSIDER pour économiser 400 $.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
S’applique à : SQL Server - Linux
Dans ce guide de démarrage rapide, vous utilisez Docker pour extraire et exécuter l’image conteneur Linux de SQL Server 2017 (14.x) mssql-server-linux. Ensuite, vous pouvez vous connecter avec sqlcmd pour créer votre première base de données et exécuter des requêtes.
Pour plus d'informations sur les plateformes prises en charge, consultez les notes de version de SQL Server 2017 on Linux.
Avertissement
Lorsque vous arrêtez et supprimez un conteneur, cela supprime définitivement toutes les données SQL Server dans le conteneur. Pour plus d’informations sur la manière de conserver vos données, créez et copiez un fichier de sauvegarde en dehors du conteneur ou utilisez une technique de persistance de données de conteneur.
Ce guide de démarrage rapide crée des conteneurs SQL Server 2017 (14.x). Si vous souhaitez créer des conteneurs Linux pour différentes versions de SQL Server, consultez les versions de cet article pour SQL Server 2019 (15.x) ou SQL Server 2022 (16.x).
Dans ce guide de démarrage rapide, vous utilisez Docker pour extraire et exécuter l’image conteneur Linux de SQL Server 2019 (15.x) mssql-server-linux. Ensuite, vous pouvez vous connecter avec sqlcmd pour créer votre première base de données et exécuter des requêtes.
Pour plus d'informations sur les plateformes prises en charge, consultez les notes de version de SQL Server 2019 on Linux.
Avertissement
Lorsque vous arrêtez et supprimez un conteneur, cela supprime définitivement toutes les données SQL Server dans le conteneur. Pour plus d’informations sur la manière de conserver vos données, créez et copiez un fichier de sauvegarde en dehors du conteneur ou utilisez une technique de persistance de données de conteneur.
Ce guide de démarrage rapide crée des conteneurs SQL Server 2019 (15.x). Si vous souhaitez créer des conteneurs Linux pour différentes versions de SQL Server, consultez les versions SQL Server 2017 (14.x) ou SQL Server 2022 (16.x) dans cet article.
Dans ce guide de démarrage rapide, vous utilisez Docker pour extraire et exécuter l’image conteneur Linux de SQL Server 2022 (16.x) mssql-server-linux. Ensuite, vous pouvez vous connecter avec sqlcmd pour créer votre première base de données et exécuter des requêtes.
Pour plus d’informations sur les plateformes prises en charge, consultez Notes de publication de SQL Server 2022 sur Linux.
Avertissement
Lorsque vous arrêtez et supprimez un conteneur, cela supprime définitivement toutes les données SQL Server dans le conteneur. Pour plus d’informations sur la manière de conserver vos données, créez et copiez un fichier de sauvegarde en dehors du conteneur ou utilisez une technique de persistance de données de conteneur.
Ce guide de démarrage rapide permet de créer des conteneurs SQL Server 2022 (16.x). Si vous préférez créer des conteneurs Linux pour différentes versions de SQL Server, consultez les versions SQL Server 2017 (14.x) ou Préversion SQL Server 2019 (15.x) de cet article.
Cette image est composée de SQL Server s’exécutant sur Linux basé sur Ubuntu. Elle peut être utilisée avec Docker Engine 1.8+ sur Linux.
À partir de SQL Server 2022 (16.x) CU 14 et SQL Server 2019 (15.x) CU 28, les images conteneur incluent le nouveau package mssql-tools18. Le référentiel précédent /opt/mssql-tools/bin
est en cours de suppression progressive. Le nouveau référentiel pour les outils Microsoft ODBC 18 est /opt/mssql-tools18/bin
, aligné sur l’offre d’outils la plus récente. Pour plus d’informations sur les modifications et les améliorations de sécurité, consultez ODBC Driver 18.0 pour SQL Server publié.
Les exemples de cet article utilisent la commande docker
. Toutefois, la plupart de ces commandes fonctionnent aussi avec Podman. Podman fournit une interface de ligne de commande similaire au moteur Docker. Vous trouverez plus d’informations sur Podman.
Important
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 guide de démarrage rapide, 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.
Pilote de stockage overlay2
de Docker. Ce pilote est le pilote par défaut pour la plupart des utilisateurs. Si vous n’utilisez pas ce fournisseur de stockage et que vous devez en changer, consultez les instructions et les avertissements dans la documentation Docker pour la configuration d’overlay2.
Installez les dernières instructions sqlcmd sur votre hôte Docker.
Au moins 2 Go d’espace disque
Au moins 2 Go de RAM
Avant de commencer les étapes suivantes, assurez-vous que vous avez sélectionné votre shell préféré (bash, PowerShell ou cmd) en haut de cet article.
Pour les commandes bash de cet article, sudo
est utilisé. Si vous ne souhaitez pas utiliser sudo
pour exécuter Docker, vous pouvez configurer un groupe docker
et ajouter des utilisateurs à ce groupe. Pour plus d’informations, consultez Étapes consécutives à l’installation pour 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-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest
Ce guide de démarrage rapide crée des conteneurs SQL Server 2017 (14.x). Si vous souhaitez créer des conteneurs Linux pour différentes versions de SQL Server, consultez les versions de SQL Server 2019 (15.x) ou SQL Server 2022 (16.x) dans cet article.
La commande précédente extrait la dernière image conteneur de SQL Server 2017 (14.x) Linux. Si vous voulez extraire une image spécifique, ajoutez un signe deux-points et le nom de la balise, comme mcr.microsoft.com/mssql/server:2017-GA-ubuntu
. Pour voir toutes les images disponibles, consultez le Registre des artefacts Microsoft.
Pour exécuter l’image conteneur Linux avec Docker, vous pouvez utiliser la commande suivante à partir d’un interpréteur de commandes bash ou d’une invite de commandes PowerShell avec élévation de privilèges.
Important
La variable d’environnement SA_PASSWORD
est dépréciée. Utilisez MSSQL_SA_PASSWORD
à la place.
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2017-latest
Si vous utilisez PowerShell Core, remplacez les guillemets doubles par des guillemets simples.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
-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=<YourStrong@Passw0rd>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2017-latest
Votre mot de passe doit suivre la stratégie de mot de passe SQL Server par défaut, sinon le conteneur ne peut pas configurer SQL Server et s’arrête de fonctionner. 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. Vous pouvez examiner le journal des erreurs en exécutant la commande docker logs
.
Par défaut, ce démarrage rapide crée un conteneur avec l’édition Développeur de SQL Server. Le processus d’exécution des éditions de production dans des conteneurs est légèrement différent. Pour plus d’informations, consultez Exécuter des images conteneur de production.
Le tableau suivant décrit les paramètres de l’exemple docker run
précédent :
Paramètre | Description |
---|---|
-e "ACCEPT_EULA=Y" |
Définissez la variable ACCEPT_EULA sur n’importe quelle valeur pour confirmer que vous acceptez le Contrat de licence utilisateur final. Paramètre obligatoire pour l’image de SQL Server. |
-e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" |
Spécifiez votre propre mot de passe fort, qui doit avoir au moins huit caractères et respecter la stratégie de mot de passe. Paramètre obligatoire pour l’image de SQL Server. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Spécifiez un classement de SQL Server personnalisé plutôt que la valeur SQL_Latin1_General_CP1_CI_AS par défaut. |
-p 1433:1433 |
Mappez un port TCP sur l’environnement hôte (première valeur) à un port TCP dans le conteneur (deuxième valeur). Dans cet exemple, SQL Server écoute sur le port TCP 1433 dans le conteneur et ce port de conteneur est ensuite exposé au port TCP 1433 sur l'hôte. |
--name sql1 |
Spécifiez un nom personnalisé pour le conteneur plutôt qu’un nom généré de manière aléatoire. Si vous exécutez plusieurs conteneurs, vous ne pouvez pas réutiliser le même nom. |
--hostname sql1 |
Permet de définir explicitement le nom d’hôte du conteneur. Si vous ne spécifiez pas le nom d’hôte, il s’agit par défaut de l’ID de conteneur, qui est un GUID système généré de manière aléatoire. |
-d |
Exécutez le conteneur en arrière-plan (démon). |
mcr.microsoft.com/mssql/server:2017-latest |
L’image conteneur Linux de SQL Server |
Pour afficher vos conteneurs Docker, utilisez la commande docker ps
.
sudo docker ps -a
docker ps -a
docker ps -a
Vous devez obtenir une sortie similaire à la suivante :
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
Si la colonne STATUS
affiche Up
, SQL Server est en cours d’exécution dans le conteneur et écoute sur le port spécifié dans la colonne PORTS
. Si la colonne STATUS
de votre conteneur SQL Server indique Exited
, consultez Résolution des problèmes liés aux conteneurs Docker SQL Server. Le serveur est prêt pour la connexion une fois que les journaux d’erreurs SQL Server affichent le message : SQL Server is now ready for client connections. This is an informational message; no user action is required
. Vous pouvez consulter le journal des erreurs SQL Server dans le conteneur à l’aide de la commande :
sudo docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Comme nous l’avons vu plus précédemment, le paramètre --hostname
permet de changer le nom interne du conteneur en valeur personnalisée. Cette valeur est le nom retourné dans la requête Transact-SQL suivante :
SELECT @@SERVERNAME,
SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
SERVERPROPERTY('MachineName'),
SERVERPROPERTY('ServerName');
Pour identifier facilement le conteneur cible, définissez --hostname
et --name
sur la même valeur.
Pour finir, modifiez votre mot de passe AS dans un environnement de production car le MSSQL_SA_PASSWORD
est visible dans la sortie ps -eax
et stocké dans la variable d’environnement du même nom.
Avant de commencer les étapes suivantes, assurez-vous que vous avez sélectionné votre shell préféré (bash, PowerShell ou cmd) en haut de cet article.
Pour les commandes bash de cet article, sudo
est utilisé. Si vous ne souhaitez pas utiliser sudo
pour exécuter Docker, vous pouvez configurer un groupe docker
et ajouter des utilisateurs à ce groupe. Pour plus d’informations, consultez Étapes consécutives à l’installation pour Linux.
Extrayez l’image conteneur Linux de SQL Server 2019 (15.x) à partir de Microsoft Azure Container Registry.
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
Ce guide de démarrage rapide crée des conteneurs SQL Server 2019 (15.x). Si vous souhaitez créer des conteneurs Linux pour différentes versions de SQL Server, consultez les versions SQL Server 2017 (14.x) ou SQL Server 2022 (16.x) dans cet article.
La commande précédente extrait la dernière image conteneur de SQL Server 2019 (15.x) Linux. Si vous voulez extraire une image spécifique, ajoutez un signe deux-points et le nom de la balise, comme mcr.microsoft.com/mssql/server:2019-GA-ubuntu
. Pour voir toutes les images disponibles, consultez le Registre des artefacts Microsoft.
Pour exécuter l’image conteneur Linux avec Docker, vous pouvez utiliser la commande suivante à partir d’un interpréteur de commandes bash ou d’une invite de commandes PowerShell avec élévation de privilèges.
Important
La variable d’environnement SA_PASSWORD
est dépréciée. Utilisez MSSQL_SA_PASSWORD
à la place.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2019-latest
Si vous utilisez PowerShell Core, remplacez les guillemets doubles par des guillemets simples.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2019-latest
Votre mot de passe doit suivre la stratégie de mot de passe SQL Server par défaut, sinon le conteneur ne peut pas configurer SQL Server et s’arrête de fonctionner. 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. Vous pouvez examiner le journal des erreurs en exécutant la commande docker logs
.
Par défaut, ce démarrage rapide crée un conteneur avec l’édition Développeur de SQL Server. Le processus d’exécution des éditions de production dans des conteneurs est légèrement différent. Pour plus d’informations, consultez Exécuter des images conteneur de production.
Le tableau suivant décrit les paramètres de l’exemple docker run
précédent :
Paramètre | Description |
---|---|
-e "ACCEPT_EULA=Y" |
Définissez la variable ACCEPT_EULA sur n’importe quelle valeur pour confirmer que vous acceptez le Contrat de licence utilisateur final. Paramètre obligatoire pour l’image de SQL Server. |
-e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" |
Spécifiez votre propre mot de passe fort, qui doit avoir au moins huit caractères et respecter la stratégie de mot de passe. Paramètre obligatoire pour l’image de SQL Server. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Spécifiez un classement de SQL Server personnalisé plutôt que la valeur SQL_Latin1_General_CP1_CI_AS par défaut. |
-p 1433:1433 |
Mappez un port TCP sur l’environnement hôte (première valeur) à un port TCP dans le conteneur (deuxième valeur). Dans cet exemple, SQL Server écoute sur le port TCP 1433 dans le conteneur et ce port de conteneur est ensuite exposé au port TCP 1433 sur l'hôte. |
--name sql1 |
Spécifiez un nom personnalisé pour le conteneur plutôt qu’un nom généré de manière aléatoire. Si vous exécutez plusieurs conteneurs, vous ne pouvez pas réutiliser le même nom. |
--hostname sql1 |
Permet de définir explicitement le nom d’hôte du conteneur. Si vous ne spécifiez pas le nom d’hôte, il s’agit par défaut de l’ID de conteneur, qui est un GUID système généré de manière aléatoire. |
-d |
Exécutez le conteneur en arrière-plan (démon). |
mcr.microsoft.com/mssql/server:2019-latest |
L’image conteneur Linux de SQL Server |
Pour afficher vos conteneurs Docker, utilisez la commande docker ps
.
docker ps -a
docker ps -a
docker ps -a
Vous devez obtenir une sortie similaire à la suivante :
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
Si la colonne STATUS
affiche Up
, SQL Server est en cours d’exécution dans le conteneur et écoute sur le port spécifié dans la colonne PORTS
. Si la colonne STATUS
de votre conteneur SQL Server indique Exited
, consultez Résolution des problèmes liés aux conteneurs Docker SQL Server. Le serveur est prêt pour la connexion une fois que les journaux d’erreurs SQL Server affichent le message : SQL Server is now ready for client connections. This is an informational message; no user action is required
. Vous pouvez consulter le journal des erreurs SQL Server dans le conteneur à l’aide de la commande :
docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Comme nous l’avons vu plus précédemment, le paramètre --hostname
permet de changer le nom interne du conteneur en valeur personnalisée. Cette valeur est le nom retourné dans la requête Transact-SQL suivante :
SELECT @@SERVERNAME,
SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
SERVERPROPERTY('MachineName'),
SERVERPROPERTY('ServerName');
Pour identifier facilement le conteneur cible, définissez --hostname
et --name
sur la même valeur.
Pour finir, modifiez votre mot de passe AS dans un environnement de production car le MSSQL_SA_PASSWORD
est visible dans la sortie ps -eax
et stocké dans la variable d’environnement du même nom.
Avant de commencer les étapes suivantes, assurez-vous que vous avez sélectionné votre shell préféré (bash, PowerShell ou cmd) en haut de cet article.
Pour les commandes bash de cet article, sudo
est utilisé. Si vous ne souhaitez pas utiliser sudo
pour exécuter Docker, vous pouvez configurer un groupe docker
et ajouter des utilisateurs à ce groupe. Pour plus d’informations, consultez Étapes consécutives à l’installation pour Linux.
Tirez (pull) l’image conteneur Linux de SQL Server 2022 (16.x) à partir de Microsoft Azure Container Registry.
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
Ce guide de démarrage rapide permet de créer des conteneurs SQL Server 2022 (16.x). Si vous préférez créer des conteneurs Linux pour différentes versions de SQL Server, consultez les versions SQL Server 2017 (14.x) ou Préversion SQL Server 2019 (15.x) de cet article.
La commande précédente extrait la dernière image conteneur de SQL Server 2022 (16.x) Linux. Si vous voulez extraire une image spécifique, ajoutez un signe deux-points et le nom de la balise, comme mcr.microsoft.com/mssql/server:2022-GA-ubuntu
. Pour voir toutes les images disponibles, consultez le Registre des artefacts Microsoft.
Pour exécuter l’image conteneur Linux avec Docker, vous pouvez utiliser la commande suivante à partir d’un interpréteur de commandes bash ou d’une invite de commandes PowerShell avec élévation de privilèges.
Important
La variable d’environnement SA_PASSWORD
est dépréciée. Utilisez MSSQL_SA_PASSWORD
à la place.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2022-latest
Si vous utilisez PowerShell Core, remplacez les guillemets doubles par des guillemets simples.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
-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=<YourStrong@Passw0rd>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2022-latest
Votre mot de passe doit suivre la stratégie de mot de passe SQL Server par défaut, sinon le conteneur ne peut pas configurer SQL Server et s’arrête de fonctionner. 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. Vous pouvez examiner le journal des erreurs en exécutant la commande docker logs
.
Par défaut, ce démarrage rapide crée un conteneur avec l’édition Développeur de SQL Server. Le processus d’exécution des éditions de production dans des conteneurs est légèrement différent. Pour plus d’informations, consultez Exécuter des images conteneur de production.
Le tableau suivant décrit les paramètres de l’exemple docker run
précédent :
Paramètre | Description |
---|---|
-e "ACCEPT_EULA=Y" |
Définissez la variable ACCEPT_EULA sur n’importe quelle valeur pour confirmer que vous acceptez le Contrat de licence utilisateur final. Paramètre obligatoire pour l’image de SQL Server. |
-e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" |
Spécifiez votre propre mot de passe fort, qui doit avoir au moins huit caractères et respecter la stratégie de mot de passe. Paramètre obligatoire pour l’image de SQL Server. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Spécifiez un classement de SQL Server personnalisé plutôt que la valeur SQL_Latin1_General_CP1_CI_AS par défaut. |
-p 1433:1433 |
Mappez un port TCP sur l’environnement hôte (première valeur) à un port TCP dans le conteneur (deuxième valeur). Dans cet exemple, SQL Server écoute sur le port TCP 1433 dans le conteneur et ce port de conteneur est ensuite exposé au port TCP 1433 sur l'hôte. |
--name sql1 |
Spécifiez un nom personnalisé pour le conteneur plutôt qu’un nom généré de manière aléatoire. Si vous exécutez plusieurs conteneurs, vous ne pouvez pas réutiliser le même nom. |
--hostname sql1 |
Permet de définir explicitement le nom d’hôte du conteneur. Si vous ne spécifiez pas le nom d’hôte, il s’agit par défaut de l’ID de conteneur, qui est un GUID système généré de manière aléatoire. |
-d |
Exécutez le conteneur en arrière-plan (démon). |
mcr.microsoft.com/mssql/server:2022-latest |
L’image conteneur Linux de SQL Server |
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. À des fins de sécurité, vous devez modifier votre mot de passe AS dans un environnement de production.
Choisissez un mot de passe fort à utiliser pour l’utilisateur SA.
Utilisez docker exec
pour exécuter sqlcmd pour changer le mot de passe avec Transact-SQL. Dans l’exemple suivant, l’ancien et le nouveau mot de passe sont lus à partir de l’entrée utilisateur.
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 "<YourStrong@Passw0rd>" `
-Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd `
-S localhost -U SA -P "<YourStrong@Passw0rd>" `
-Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
Les versions récentes de sqlcmd sont sécurisées par défaut. Si vous souhaitez en savoir plus sur le chiffrement de connexion, veuillez consulter les rubriques Utilitaire sqlcmd pour Windows et Connexion avec sqlcmd pour Linux et macOS. Si la connexion échoue, vous pouvez ajouter l’option -No
à sqlcmd pour spécifier que le chiffrement est facultatif, et non obligatoire.
Important
Vous aurez besoin de ces informations d’identification pour les étapes ultérieures. Veillez à noter l’identifiant utilisateur et le mot de passe que vous entrez ici.
Lorsque vous vous connectez à votre instance SQL Server à l’aide du compte sa
pour la première fois après l’installation, selon les meilleures pratiques en matière de sécurité, il est important de suivre ces étapes, puis de désactiver immédiatement la connexion sa
.
Créez une connexion et définissez-la comme membre du rôle serveur administrateur système.
Selon que vous disposez d’un déploiement de conteneur ou sans conteneur, activez l’Authentification Windows, créez une connexion Windows et ajoutez-la au rôle serveur administrateur système.
Sinon, créez une connexion à l’aide de l’authentification SQL Server et ajoutez-la au rôle serveur administrateur système.
Connectez-vous à l’instance SQL Server à l’aide de la nouvelle connexion que vous avez créée.
Désactivez le compte sa
, comme recommandé dans le cadre des meilleures pratiques de sécurité.
Pour afficher vos conteneurs Docker, utilisez la commande docker ps
.
docker ps -a
docker ps -a
docker ps -a
Vous devez obtenir une sortie similaire à la suivante :
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
Si la colonne STATUS
affiche Up
, SQL Server est en cours d’exécution dans le conteneur et écoute sur le port spécifié dans la colonne PORTS
. Si la colonne STATUS
de votre conteneur SQL Server indique Exited
, consultez Résolution des problèmes liés aux conteneurs Docker SQL Server. Le serveur est prêt pour la connexion une fois que les journaux d’erreurs SQL Server affichent le message : SQL Server is now ready for client connections. This is an informational message; no user action is required
. Vous pouvez consulter le journal des erreurs SQL Server dans le conteneur à l’aide de la commande :
docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Comme nous l’avons vu plus précédemment, le paramètre --hostname
permet de changer le nom interne du conteneur en valeur personnalisée. Cette valeur est le nom retourné dans la requête Transact-SQL suivante :
SELECT @@SERVERNAME,
SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
SERVERPROPERTY('MachineName'),
SERVERPROPERTY('ServerName');
Pour identifier facilement le conteneur cible, définissez --hostname
et --name
sur la même valeur.
La procédure suivante utilise l’outil en ligne de commande SQL Server, l’utilitaire sqlcmd, dans le conteneur pour se connecter à SQL Server.
Utilisez la commande docker exec -it
pour démarrer un interpréteur de commandes bash interactif dans votre conteneur en cours d’exécution. Dans l’exemple suivant, sql1
est le nom spécifié par le paramètre --name
quand vous avez créé le conteneur.
docker exec -it sql1 "bash"
docker exec -it sql1 "bash"
docker exec -it sql1 "bash"
Une fois dans le conteneur, connectez-vous localement avec sqlcmd en utilisant son chemin complet.
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid> -P "<YourNewStrong@Passw0rd>"
Les versions récentes de sqlcmd sont sécurisées par défaut. Si vous souhaitez en savoir plus sur le chiffrement de connexion, veuillez consulter les rubriques Utilitaire sqlcmd pour Windows et Connexion avec sqlcmd pour Linux et macOS. Si la connexion échoue, vous pouvez ajouter l’option -No
à sqlcmd pour spécifier que le chiffrement est facultatif, et non obligatoire.
Vous pouvez omettre le mot de passe sur la ligne de commande pour être invité à l’entrer. Par exemple :
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid>
Une fois dans le conteneur, connectez-vous localement avec sqlcmd en utilisant son chemin complet.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<YourNewStrong@Passw0rd>"
Les versions récentes de sqlcmd sont sécurisées par défaut. Si vous souhaitez en savoir plus sur le chiffrement de connexion, veuillez consulter les rubriques Utilitaire sqlcmd pour Windows et Connexion avec sqlcmd pour Linux et macOS. Si la connexion échoue, vous pouvez ajouter l’option -No
à sqlcmd pour spécifier que le chiffrement est facultatif, et non obligatoire.
Vous pouvez omettre le mot de passe sur la ligne de commande pour être invité à l’entrer. Par exemple :
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid>
Une fois dans le conteneur, connectez-vous localement avec sqlcmd en utilisant son chemin complet.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<YourNewStrong@Passw0rd>"
Les versions récentes de sqlcmd sont sécurisées par défaut. Si vous souhaitez en savoir plus sur le chiffrement de connexion, veuillez consulter les rubriques Utilitaire sqlcmd pour Windows et Connexion avec sqlcmd pour Linux et macOS. Si la connexion échoue, vous pouvez ajouter l’option -No
à sqlcmd pour spécifier que le chiffrement est facultatif, et non obligatoire.
Vous pouvez omettre le mot de passe sur la ligne de commande pour être invité à l’entrer. Par exemple :
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid>
1>
.Les sections suivantes vous guident lors de l’utilisation de sqlcmd et Transact-SQL pour créer une base de données, ajouter des données et exécuter une requête.
La procédure suivante crée une base de données nommée TestDB
.
À partir de l’invite de commandes sqlcmd, collez la commande Transact-SQL suivante pour créer une base de données de test :
CREATE DATABASE TestDB;
Sur la ligne suivante, écrivez une requête pour retourner le nom de toutes les bases de données sur votre serveur :
SELECT Name from sys.databases;
Les deux commandes précédentes n’ont pas été exécutées immédiatement. Tapez GO
sur une nouvelle ligne pour exécuter les commandes précédentes :
GO
Créez ensuite une table, Inventory
, et insérez deux nouvelles lignes.
À partir de l’invite de commandes sqlcmd, basculez le contexte vers la nouvelle base de données TestDB
:
USE TestDB;
Créez une table nommée Inventory
:
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT);
Insérez des données dans la nouvelle table :
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
Tapez GO
pour exécuter les commandes précédentes :
GO
Exécutez maintenant une requête pour retourner des données de la table Inventory
.
Dans l’invite de commandes sqlcmd, entrez une requête qui retourne les lignes de la table Inventory
dont la quantité est supérieure à 152 :
SELECT * FROM Inventory WHERE quantity > 152;
Exécutez la commande suivante :
GO
Pour mettre fin à votre session sqlcmd, tapez QUIT
:
QUIT
Pour quitter l’invite de commandes interactive dans votre conteneur, tapez exit
. Le conteneur continue de s’exécuter une fois que vous avez quitté l’interpréteur de commandes bash interactif.
Vous pouvez aussi vous connecter à l’instance SQL Server sur votre machine Docker à partir de n’importe quel outil externe Linux, Windows ou macOS qui prend en charge les connexions SQL. L’outil externe utilise l’adresse IP de la machine hôte.
Les étapes suivantes utilisent sqlcmd en dehors de votre conteneur pour se connecter à SQL Server en cours d’exécution dans le conteneur. Ces étapes supposent que vous avez déjà installé les outils en ligne de commande SQL Server en dehors de votre conteneur. Les mêmes principes s’appliquent quand vous utilisez d’autres outils, mais le processus de connexion est propre à chaque outil.
Recherchez l’adresse IP de l’ordinateur hôte de votre conteneur en utilisant ifconfig
ou ip addr
.
Pour cet exemple, installez l'outil sqlcmd sur votre ordinateur client. Pour plus d’informations, consultez Utilitaire sqlcmd ou Installer les outils en ligne de commande SQL Server sqlcmd et bcp sur Linux.
Exécutez sqlcmd en spécifiant l’adresse IP et le port mappé au port 1433 dans votre conteneur. Dans cet exemple, le port est le même que le port 1433 sur la machine hôte. Si vous avez spécifié un autre port mappé sur l’ordinateur hôte, vous pouvez l’utiliser ici. Vous avez également besoin d’ouvrir le port d’entrée approprié sur votre pare-feu pour autoriser la connexion.
Les versions récentes de sqlcmd sont sécurisées par défaut. Si la connexion échoue et si vous utilisez la version 18 ou ultérieure, vous pouvez ajouter l’option -No
à sqlcmd pour spécifier que le chiffrement est facultatif, et non obligatoire.
sudo sqlcmd -S <ip_address>,1433 -U <userid> -P "<YourNewStrong@Passw0rd>"
sqlcmd -S <ip_address>,1433 -U <userid> -P "<YourNewStrong@Passw0rd>"
sqlcmd -S <ip_address>,1433 -U <userid> -P "<YourNewStrong@Passw0rd>"
Exécutez les commandes Transact-SQL. Quand vous avez terminé, tapez QUIT
.
Voici d’autres outils courants pour vous connecter à SQL Server :
Si vous voulez supprimer le conteneur SQL Server utilisé dans ce didacticiel, exécutez les commandes suivantes :
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
Une fois que vous avez fini d’utiliser l’image conteneur de Linux de SQL Server pour Docker, vous pouvez être intéressé par des informations sur l’utilisation de Docker pour améliorer le développement et les tests. La vidéo suivante illustre l’utilisation de Docker dans une intégration continue et un scénario de déploiement.
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 Guide pratique pour contribuer à la documentation SQL Server
Événement
31 mars, 23 h - 2 avr., 23 h
Le plus grand événement d’apprentissage SQL, Fabric et Power BI. 31 mars au 2 avril. Utilisez le code FABINSIDER pour économiser 400 $.
Inscrivez-vous aujourd’huiFormation
Certification
Microsoft Certified : Azure Database Administrator Associate - Certifications
Administrer une infrastructure de base de données SQL Server pour les bases de données relationnelles cloud, locales et hybrides à l’aide des offres de bases de données relationnelles Microsoft PaaS.
Documentation
Déployer et se connecter à des conteneurs Linux SQL Server - SQL Server
Découvrir comment SQL Server peut être déployé sur des conteneurs Linux, et les différents outils permettant de se connecter à SQL Server depuis l’intérieur et l’extérieur du conteneur
Configurer et personnaliser des conteneurs Docker SQL Server - SQL Server
Comprendre les différentes façons de personnaliser des conteneurs Docker SQL Server et de les configurer en fonction de vos besoins
Résolution des problèmes liés aux conteneurs Docker SQL Server - SQL Server
Explorer les différentes techniques de résolution des problèmes que vous pouvez utiliser pour corriger les erreurs courantes rencontrées lors de l’utilisation de conteneurs Docker Linux avec des images SQL Server