491 votes

docker ne peut pas démarrer sur Windows

L'exécution de docker version renvoie les résultats suivants.

 C:\Projects> docker version
Client:
 Version:      1.13.0-dev
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   d8d3314
 Built:        Tue Nov  1 03:05:34 2016
 OS/Arch:      windows/amd64
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/version: open //./pipe/docker_engine: The system cannot find the file
specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
 

L'exécution des diagnostics produit les éléments suivants:

 C:\Projects> wget https://github.com/Microsoft/Virtualization- 
Documentation/raw/master/windows-server-container-tools/Debug- 
ContainerHost/Debug-ContainerHost.ps1 -UseBasicParsin | iex

Checking for common problems
Describing Windows Version and Prerequisites
 [+] Is Windows 10 Anniversary Update or Windows Server 2016 608ms
 [+] Has KB3192366, KB3194496, or later installed if running Windows build 14393 141ms
 [+] Is not a build with blocking issues 29ms
Describing Docker is installed
 [-] A Docker service is installed - 'Docker' or 'com.Docker.Service'  134ms
   Expected: value to not be empty
   27:         $services | Should Not BeNullOrEmpty
   at <ScriptBlock>, <No file>: line 27
 [+] Service is running 127ms
 [+] Docker.exe is in path 2.14s
Describing User has permissions to use Docker daemon
 [+] docker.exe should not return access denied 42ms
Describing Windows container settings are correct
 [-] Do not have DisableVSmbOplock set to 1 53ms
   Expected: {0}
   But was:  {1}
   66:              $regvalue.VSmbDisableOplocks | Should Be 0
   at <ScriptBlock>, <No file>: line 66
 [+] Do not have zz values set 42ms
Describing The right container base images are installed
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/images/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
 [-] At least one of 'microsoft/windowsservercore' or 'microsoft/nanoserver' should be installed 129ms
   ValidationMetadataException: The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
   ParameterBindingValidationException: Cannot validate argument on parameter 'Property'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
   at <ScriptBlock>, <No file>: line 90
Describing Container network is created
 [-] Error occurred in Describe block 1.08s
   RuntimeException: Cannot index into a null array.
   at <ScriptBlock>, <No file>: line 119
Showing output from: docker info

Showing output from: docker version
Client:
 Version:      1.13.0-dev
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   d8d3314
 Built:        Tue Nov  1 03:05:34 2016
 OS/Arch:      windows/amd64

Showing output from: docker network ls

Warnings & errors from the last 24 hours
Logs saved to C:\Projects\logs_20161107-084122.csv
C:\Projects>
 

83voto

Jdoe Points 51

Vous pouvez C: \ Program Files \ Docker \ Docker> DockerCli.exe -SwitchDaemon et pointer Docker CLI sur des conteneurs Linux ou Windows. Cela a fonctionné pour moi.

50voto

javasenior Points 899

Code D'Erreur:

erreur lors de la connexion: Obtenir http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/version: ouvert //./tuyau/docker_engine: Le système ne peut pas trouver le fichier spécifié. Dans le par défaut de configuration du démon sur Windows, le menu fixe client doit être exécuté élevé pour vous connecter . Cette erreur peut également indiquer que le docker le démon n'est pas en cours d'exécution.

Solutions:

1) Pour Windows 7 Fenêtre de Commande(cmd.exe), ouvert cmd.exe avec exécuter en tant qu'administrateur et exécutez la commande suivante:

docker-machine env --shell cmd default

Vous recevrez sortie suivante:

SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\USER_NAME\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
REM Run this command to configure your shell:
REM @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

Copier la commande ci-dessous et de les exécuter sur cmd:

@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i

Et puis exécuter la commande suivante pour le contrôle:

docker version

2) Pour Windows 7 Powershell, ouvrir powershell.exe avec exécuter en tant qu'administrateur et exécutez la commande suivante:

docker-machine env --shell=powershell | Invoke-Expression

Et puis exécuter la commande suivante pour le contrôle:

docker version

3) Si vous rouvrez cmd ou powershell, vous devez répéter les étapes liées à nouveau.

14voto

Thinh Turbo Points 79

Je sais que cette question était il y a longtemps mais je n'ai trouvé aucune explication et de solution, donc j'espère que ma réponse est utile :)

En supposant que vous installez le Panneau de boîte à outils sur les Fenêtres, docker et docker-machine commandes seront disponibles. Souvent, les gens deviennent confus quand utiliser l'un de ces.

L' docker des commandes sont utilisés uniquement à l'intérieur d'une machine virtuelle pour gérer les images. L' docker-machine des commandes sont utilisées sur l'ordinateur hôte pour gérer les ordinateurs virtuels Linux.

Donc, veuillez utiliser docker-machine de commandes sur votre machine Windows. Utiliser docker de commande à l'intérieur de votre VM. Pour utiliser l' docker des commandes, par exemple, docker ps, vous pouvez ouvrir le Panneau de Démarrage du Terminal ou de l'exécution de ces sur votre cmd/bash/PowerShell:

docker-machine run default /en supposant par défaut est de votre machine virtuelle Linux/

docker-machine ssh default

Cela va démarrer boot2docker et vous verrez l'icône de menu fixe sur la ligne de commande. Ensuite, vous pouvez utiliser docker des commandes.

Bonne chance :)

5voto

Prasanth Louis Points 1869

Pour moi, la question était de virtualisation n'a pas été activée.

Sur windows 10: Allez sur le gestionnaire des tâches -> Performances -> CPU et vous devriez voir que l'article que "la Virtualisation : Activé"

Si vous ne voyez pas cette option, cela signifie que la virtualisation n'a pas été activée.

Une autre chose intéressante à noter est que vous devez avoir Hyper V est activé. Cependant comme je l'ai été à l'aide de parallels desktop, j'ai permis à "la Virtualisation Imbriquée" pour Hyper V "réellement activé". Donc, si votre windows est une VM, vérifier les paramètres de Parallels (ou ce que vous utilisez) qui nichaient la virtualisation est activée.

3voto

haltunbay Points 113

J'ai eu le même problème récemment. Le problème était que Security Software (Trendmicro) bloquait le menu fixe pour créer une interface réseau Hyperv. Vous devez également vérifier le pare-feu, le logiciel audiovisuel ne bloquant pas l'installation ou la configuration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X