Moteur Docker sur Windows
S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016
Le moteur et le client Docker ne sont pas inclus avec Windows, et doivent être installés et configurés individuellement. De plus, le moteur Docker accepte de nombreuses configurations personnalisées. Certains exemples incluent la configuration de la façon dont le démon accepte les requêtes entrantes, les options de mise en réseau par défaut et les paramètres de débogage/du journal. Sur Windows, ces configurations peuvent être spécifiées dans un fichier de configuration ou à l’aide du Gestionnaire de contrôle des services Windows. Ce document décrit en détail comment installer et configurer le moteur Docker, et fournit également quelques exemples de configurations fréquemment utilisées.
Installer Docker
Docker est nécessaire pour utiliser les conteneurs Windows. Docker comprend le moteur Docker (dockerd.exe) et le client Docker (docker.exe). Le moyen le plus simple de tout installé se trouve dans le guide de démarrage rapide, qui vous permet de tout configurer et d'exécuter votre premier conteneur.
Pour les installations par script, consultez Utiliser un script pour installer Docker EE.
Avant d'utiliser Docker, vous devez installer les images de conteneur. Pour plus d’informations, consultez la documentation relative à nos images de base de conteneur.
Configurer Docker avec un fichier de configuration
La méthode privilégiée pour configurer le moteur Docker sur Windows consiste à utiliser un fichier de configuration. Ce fichier de configuration se trouve dans C:\ProgramData\Docker\config\daemon.json. Vous pouvez créer ce fichier s’il n’existe pas déjà.
Notes
Toutes les options de configuration de Docker disponibles ne s’appliquent pas à Docker sur Windows. L'exemple suivant illustre les options de configuration qui s'appliquent. Pour plus d'informations sur la configuration du moteur Docker, consultez Fichier de configuration du démon Docker.
{
"authorization-plugins": [],
"dns": [],
"dns-opts": [],
"dns-search": [],
"exec-opts": [],
"storage-driver": "",
"storage-opts": [],
"labels": [],
"log-driver": "",
"mtu": 0,
"pidfile": "",
"data-root": "",
"cluster-store": "",
"cluster-advertise": "",
"debug": true,
"hosts": [],
"log-level": "",
"tlsverify": true,
"tlscacert": "",
"tlscert": "",
"tlskey": "",
"group": "",
"default-ulimits": {},
"bridge": "",
"fixed-cidr": "",
"raw-logs": false,
"registry-mirrors": [],
"insecure-registries": [],
"disable-legacy-registry": false
}
Seules les modifications de configuration souhaitées doivent être ajoutées au fichier de configuration. Ainsi, l'exemple suivant configure le moteur Docker pour accepter les connexions entrantes sur le port 2375. Toutes les autres options de configuration utiliseront les valeurs par défaut.
{
"hosts": ["tcp://0.0.0.0:2375"]
}
De même, l'exemple suivant configure le démon Docker pour conserver les images et les conteneurs dans un autre chemin. Si aucune valeur n’est spécifiée, la valeur par défaut est c:\programdata\docker
.
{
"data-root": "d:\\docker"
}
L'exemple suivant configure le démon Docker pour accepter uniquement les connexions sécurisées sur le port 2376.
{
"hosts": ["tcp://0.0.0.0:2376", "npipe://"],
"tlsverify": true,
"tlscacert": "C:\\ProgramData\\docker\\certs.d\\ca.pem",
"tlscert": "C:\\ProgramData\\docker\\certs.d\\server-cert.pem",
"tlskey": "C:\\ProgramData\\docker\\certs.d\\server-key.pem",
}
Configurer Docker sur le service Docker
Le moteur Docker peut également être configuré en modifiant le service Docker avec sc config
. Avec cette méthode, les indicateurs du moteur Docker sont définis directement sur le service de Docker. Exécutez la commande suivante dans une invite de commandes (cmd.exe, pas PowerShell) :
sc config docker binpath= "\"C:\Program Files\docker\dockerd.exe\" --run-service -H tcp://0.0.0.0:2375"
Notes
Vous n’êtes pas tenu d’exécuter cette commande si votre fichier daemon.json contient déjà l’entrée "hosts": ["tcp://0.0.0.0:2375"]
.
Configuration commune
Les exemples de fichiers de configuration suivants présentent des configurations courantes de Docker. Elles peuvent être combinées en un seul fichier de configuration.
Création de réseau par défaut
Pour configurer le moteur Docker de sorte qu’un réseau NAT par défaut ne soit pas créé, utilisez la configuration suivante.
{
"bridge" : "none"
}
Pour plus d’informations, voir la rubrique indiquant comment gérer les réseaux Docker.
Définir un groupe de sécurité Docker
Lorsque vous êtes connecté à l’hôte Docker et exécutez des commandes Docker localement, ces commandes sont exécutées via un canal nommé. Par défaut, seuls les membres du groupe Administrateurs peuvent accéder au moteur Docker via le canal nommé. Pour spécifier un groupe de sécurité bénéficiant de cet accès, utilisez l’indicateur group
.
{
"group" : "docker"
}
Configuration du proxy
Pour définir des informations de proxy pour docker search
et docker pull
, créez une variable d’environnement Windows nommée HTTP_PROXY
ou HTTPS_PROXY
, et une valeur des informations de proxy. Vous pouvez effectuer cette opération dans PowerShell en utilisant une commande semblable à celle-ci :
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://username:password@proxy:port/", [EnvironmentVariableTarget]::Machine)
Une fois que la variable a été définie, redémarrez le service Docker.
Restart-Service docker
Pour plus d’informations, consultez Fichier de configuration Windows sur Docker.com.
Désinstaller Docker
Cette section vous explique comment désinstaller Docker et effectuer un nettoyage complet des composants système Docker de votre système Windows 10 ou Windows Server 2016.
Notes
Vous devez exécuter toutes les commandes de ces instructions à partir d’une session PowerShell avec élévation de privilèges.
Préparer votre système à la suppression de Docker
Avant de désinstaller Docker, assurez-vous qu’aucun conteneur n’est en cours d’exécution sur votre système.
Exécutez les cmdlets suivantes pour vérifier les conteneurs en cours d’exécution :
# Leave swarm mode (this will automatically stop and remove services and overlay networks)
docker swarm leave --force
# Stop all running containers
docker ps --quiet | ForEach-Object {docker stop $_}
Il est également recommandé de supprimer tous les conteneurs, images de conteneur, réseaux et volumes de votre système avant la suppression de Docker. Pour ce faire, exécutez la cmdlet suivante :
docker system prune --volumes --all
Désinstallation de Docker
Vous devez ensuite désinstaller Docker.
Pour désinstaller Docker sur Windows 10
- Accédez à Paramètres>Applications sur votre ordinateur Windows 10
- Sous Applications et fonctionnalités, recherchez Docker pour Windows
- Accédez à Docker pour Windows>Désinstaller
Pour désinstaller Docker sur Windows Server 2016 :
À partir d’une session PowerShell avec élévation de privilèges, utilisez les cmdlets Uninstall-Package et Uninstall-Module pour supprimer le module Docker et le fournisseur de gestion de packages correspondant de votre système, comme illustré dans l'exemple suivant :
Uninstall-Package -Name docker -ProviderName DockerMsftProvider
Uninstall-Module -Name DockerMsftProvider
Conseil
Vous pouvez rechercher le fournisseur de packages que vous avez utilisé pour installer Docker avec PS C:\> Get-PackageProvider -Name *Docker*
Nettoyer les données et les composants système Docker
Après avoir désinstallé Docker, vous devez supprimer les réseaux Docker par défaut afin de supprimer leur configuration de votre système. Pour ce faire, exécutez la cmdlet suivante :
Get-HNSNetwork | Remove-HNSNetwork
Pour supprimer les réseaux Docker par défaut sur Windows Server 2016.
Get-ContainerNetwork | Remove-ContainerNetwork
Exécutez la cmdlet suivante pour supprimer les données programme Docker de votre système :
Remove-Item "C:\ProgramData\Docker" -Recurse
Vous pouvez également supprimer les fonctionnalités facultatives Windows associés aux conteneurs/Docker sur Windows.
Cela inclut la fonctionnalité « Conteneurs », qui est automatiquement activée sur Windows 10 ou Windows Server 2016 lorsque Docker est installé. Cela peut également inclure la fonctionnalité « Hyper-V », qui est automatiquement activée sur Windows 10 lorsque Docker est installé, mais qui doit être activée explicitement sur Windows Server 2016.
Important
La fonctionnalité Hyper-V est une fonctionnalité de virtualisation générale bien plus puissante que les conteneurs. Avant de désactiver la fonctionnalité Hyper-V, assurez-vous qu'aucun autre composant virtualisé de votre système ne requiert Hyper-V.
Pour supprimer les fonctionnalités Windows sur Windows 10 :
- Sélectionnez Panneau de configuration>Programmes>Programmes et fonctionnalités>Activer ou désactiver des fonctionnalités Windows.
- Recherchez le nom de la ou des fonctionnalités que vous souhaitez désactiver, en l’occurrence Conteneurs et (éventuellement) Hyper-V.
- Décochez la case en regard du nom de la fonctionnalité que vous souhaitez désactiver.
- Sélectionnez « OK » .
Pour supprimer les fonctionnalités Windows sur Windows Server 2016 :
À partir d’une session PowerShell avec élévation de privilèges, exécutez les cmdlets suivantes pour désactiver les fonctionnalités Conteneurs et (éventuellement) Hyper-V de votre système :
Remove-WindowsFeature Containers
Remove-WindowsFeature Hyper-V
Redémarrer votre système
Pour terminer la désinstallation et le nettoyage, exécutez la cmdlet suivante à partir d’une session PowerShell avec élévation de privilèges afin de redémarrer votre système :
Restart-Computer -Force