Moteur Docker sur Windows

Le moteur Docker et le client 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 explique en détail comment installer et configurer le moteur Docker et fournit également des exemples de configurations fréquemment utilisées.

Installer Docker

Vous devez Docker pour utiliser les conteneurs Windows. Docker comprend le moteur Docker (dockerd.exe) et le client Docker (docker.exe). Pour obtenir tous les éléments installés, le plus simple consiste dans le démarrage rapide guides, ce qui vous aideront à tout configurer et exécutent votre premier conteneur.

Pour les installations par script, voir utilisation d’un script pour installer Docker EE.

Avant de pouvoir utiliser Docker, vous devez installer les images de conteneur. Pour plus d’informations, voir le guide de démarrage rapide pour l’utilisation d’images.

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 déjà.

Notes

Les options de configuration Docker sont pas toutes disponibles s’applique à Docker sur Windows. L’exemple suivant montre les options de configuration qui s’appliquent. Pour plus d’informations sur la configuration du moteur Docker, consultez le 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
}

Vous devez uniquement ajouter les modifications de configuration souhaitées dans le fichier de configuration. Par exemple, 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 des conteneurs dans un autre chemin. Si vous n’est spécifié, 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’avez pas besoin d’exécuter cette commande si votre fichier daemon.json contient déjà le "hosts": ["tcp://0.0.0.0:2375"] entrée.

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 du réseau par défaut

Pour configurer le moteur Docker de sorte qu’il n’a pas de créer un réseau NAT par défaut, utilisez la configuration suivante.

{
    "bridge" : "none"
}

Pour plus d’informations, voir la rubrique indiquant comment gérer les réseaux Docker.

Définir le groupe de sécurité Docker

Lorsque vous avez connecté à l’hôte Docker et exécutez les commandes Docker localement, ces commandes sont exécutées par le biais d’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 Le fichier de Configuration Windows sur Docker.com.

Procédure pour désinstaller Docker

Cette section vous indique 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 dans les instructions ci-après à partir d’une session PowerShell avec élévation de privilèges.

Préparer votre système pour 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 applets de commande suivantes pour rechercher 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, les images de conteneur, les réseaux et les volumes de votre système avant la suppression de Docker. Vous pouvez le faire en exécutant l’applet de commande suivante:

docker system prune --volumes --all

Désinstallation de Docker

Ensuite, vous devez réellement désinstallation de Docker.

Pour désinstaller Docker sur Windows 10

  • Accédez à paramètres > applications sur votre ordinateur Windows 10
  • Sous les applications & 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 applets de commande de Désinstallation-Package et Module de désinstallation pour supprimer le module Docker et le fournisseur de gestion de packages correspondant à partir de votre système, comme illustré dans l’exemple suivant:

Uninstall-Package -Name docker -ProviderName DockerMsftProvider
Uninstall-Module -Name DockerMsftProvider

Conseil

Vous pouvez trouver le fournisseur du Package que vous avez utilisé pour installer Docker PS C:\> Get-PackageProvider -Name *Docker*

Nettoyer les composants système et de données de Docker

Après la désinstallation de Docker, vous devez supprimer les réseaux par défaut de Docker pour que leur configuration ne reste sur votre système une fois que Docker a disparu. Vous pouvez le faire en exécutant l’applet de commande suivante:

Get-HNSNetwork | Remove-HNSNetwork

Exécutez l’applet de commande suivante pour supprimer les données du programme de 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 Windows10 lorsque Docker est installé, mais qui doit être activée explicitement sur Windows Server2016.

Important

Fonctionnalité l’Hyper-V est une fonctionnalité de virtualisation générale bien plus que les conteneurs. Avant de désactiver la fonctionnalité Hyper-V, assurez-vous qu’il n’existe aucun autre composant virtualisé sur votre système qui nécessitent Hyper-V.

Pour supprimer les fonctionnalités de Windows sur Windows 10:

  • Accédez à Panneau > programmes > programmes et fonctionnalités > Windows activer ou désactiver des fonctionnalités.
  • Recherchez le nom de l’ou les fonctionnalités que vous souhaitez désactiver, en l’occurrence, les 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 de Windows sur Windows Server 2016:

À partir d’une session PowerShell avec élévation de privilèges, exécutez les applets de commande suivante pour désactiver les fonctionnalités Hyper-V à partir de votre système de conteneurs et (éventuellement):

Remove-WindowsFeature Containers
Remove-WindowsFeature Hyper-V

Redémarrez votre système

Pour terminer la désinstallation et le nettoyage, exécutez l’applet de commande suivante à partir d’une session PowerShell avec élévation de privilèges à redémarrer votre système:

Restart-Computer -Force