o docker não pode ser iniciado no Windows

103

Executar o docker versioncomando no Windows retorna os seguintes resultados:

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.

A execução do diagnóstico produz o seguinte:

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>
Jim
fonte
8
Cheguei à conclusão de que a tecnologia não está madura no Windows. Use um docker Linux até que a tecnologia amadureça.
Jim,
use este comando docker-machine create box github.com/docker/toolbox/issues/636
Sr. Ninguém
certifique-se de ter seguido todas as etapas de configuração da documentação: docs.docker.com/machine/get-started
fanny

Respostas:

43

Erro de código:

erro durante a conexão: Obtenha http: //%2F%2F.%2Fpipe%2Fdocker_engine/v1.29/version : open //./pipe/docker_engine: O sistema não pode encontrar o arquivo especificado. Na configuração do daemon padrão no Windows, o cliente docker deve ser executado elevado para se conectar. Este erro também pode indicar que o docker daemon não está em execução.

Soluções:

1) Para Windows 7 Command Window (cmd.exe), abra cmd.exe com executar como administrador e execute o seguinte comando:

docker-machine env --shell cmd default

Você receberá a seguinte saída:

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

Copie o comando abaixo e execute no cmd:

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

E então execute o seguinte comando para controlar:

docker version

2) Para Windows 7 Powershell, abra powershell.exe com executar como administrador e execute o seguinte comando:

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

E então execute o seguinte comando para controlar:

docker version

3) Se você reabrir cmd ou PowerShell, você deve repetir as etapas relacionadas novamente.

Javasenior
fonte
13
Explicação, por favor! O método PowerShell é o mais fácil de seguir. Mas por que esse problema acontece e como um único liner pode consertá-lo?
Jaywalker
2
Se as etapas 1 e 2 são mutuamente exclusivas, por que são numeradas 1 e 2?
sean
10
E quanto ao Windows 10 (Enterprise)? Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
Chloe
39

Você pode executar "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemone apontar o Docker CLI para contêineres Linux ou Windows. Isso funcionou para mim.

Jdoe
fonte
3
Isso funcionou para mim - Win10E - Docker versão 18.03.0-ce, build 0520e24 (usando linux vm - hyper v, virtualização habilitada - o que me impede de executar vm no virtualbox - então posso usar docker ou uma VM em um ponto no tempo)
hB0
29

O erro está relacionado a essa parte:

Na configuração do daemon padrão no Windows, o cliente docker deve ser executado elevado para se conectar

Você pode fazer isso para alternar daemon do Docker:

Com Powershell :

  1. Abra o Powershell como administrador
  2. Comando de execução: & 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon

OU, com cmd :

  1. Abra o cmd como administrador
  2. Comando de execução: "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon
Veben
fonte
2
Claro e conciso. Funcionou para mim.
mfonism
2
MELHOR! Obrigado por este comentário!!
Ravish Rawat de
2
funciona para mim. obrigado
Elvin Aghammadzada
2
funcionou para mim também, obrigado
Krzysztof Podmokły
14

Eu tive o mesmo problema.

Iniciar o daemon do docker resolveu o problema. Basta pesquisar por docker pressionando a tecla windows e clicar em "Docker Dekstop". O Daemon deve ser executado em um minuto. insira a descrição da imagem aqui

Pradeep Sanjeewa
fonte
13

Sei que essa pergunta foi há muito tempo, mas não encontrei nenhuma explicação e solução adequadas, então espero que minha resposta seja útil :)

Supondo que você instale o Docker Toolbox no Windows, ambos dockeredocker-machine comandos estarão disponíveis. Freqüentemente, as pessoas ficam confusas quando usar qualquer um deles.

Os dockercomandos são usados ​​apenas em uma máquina virtual para gerenciar imagens . odocker-machine comandos são usados ​​no host para gerenciar as VMs Linux.

Portanto, use docker-machinecomandos em sua máquina Windows. Use o dockercomando dentro de sua VM. Para usar os dockercomandos, por exemplo docker ps, você pode abrir o Docker Quickstart Terminal ou executá-los em seu cmd / bash / PowerShell:

docker-machine run default/ assumindo que o padrão é sua VM Linux /

docker-machine ssh default

Isso iniciará o boot2docker e você verá o ícone do docker na linha de comando. Então você pode usar dockercomandos.

Boa sorte :)

Thinh Turbo
fonte
3
docker-machine: 'run' is not a docker-machine command. See 'docker-machine --help'.Isso não corresponde ao que diz a documentação. Os documentos dizem que você pode executar docker infoou docker psver seus contêineres. docs.docker.com/get-started/#test-docker-version
Chloe
4

se você está no windows tente isso

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

para testar tente

docker run hello-world
RahulG
fonte
4

Se você instalou o docker no Windows 10 Pro com Hyper-V habilitado e ainda não consegue executar o Docker no Windows 10, então, como o erro sugere, o daemon do docker não foi iniciado.

As etapas a seguir me ajudaram a iniciar o docker com sucesso:

  1. Use o comando em cmd (modo Admin)

    docker-machine restart default
    
  2. Em seguida, você receberá uma mensagem como:

    abrir C:\User\\{User_name}\\.docker\machine\machines\default\config.json:
    O sistema não pode encontrar o arquivo especificado.

  3. Vá para o ícone do docker que estará na bandeja do Windows (canto inferior direito da área de trabalho)

  4. Clique com o botão direito no ícone do docker> Configurações> Redefinir> Reiniciar o Docker

    Vai demorar alguns minutos

  5. Em seguida, você verá a seguinte mensagem:

    O Docker está sendo executado com o indicador verde

Nota : Se você já tinha contêineres Docker em execução no seu sistema, não siga estas etapas. Você pode perder os contêineres existentes.

insira a descrição da imagem aqui

Prabhat Maurya
fonte
3
Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
Chloe
4

Tente resolver o problema com uma das seguintes opções:

Opção A

Start-Service "Hyper-V Virtual Machine Management"
Start-Service "Hyper-V Host Compute Service"

ou

Opção B

  1. Abra "Segurança da janela"

  2. Abra "App & Browser control"

  3. Clique em "Explorar configurações de proteção" na parte inferior

  4. Mude para a guia "Configurações do programa"

  5. Localize "C: \ WINDOWS \ System32 \ vmcompute.exe" na lista e expanda-a

  6. Clique em "Editar"

  7. Role para baixo até "Proteção de fluxo de código (CFG)" e desmarque "Substituir configurações do sistema"

  8. Iniciar vmcompute a partir do PowerShell "net start vmcompute"

  9. Então reinicie o seu sistema

MayankGaur
fonte
4

Recebi o mesmo erro para o Docker versão 19.03.12 e Windows 10 . Resolvido o problema seguindo as etapas abaixo. Espero que ajude outras pessoas.

  1. Vá para Iniciar do Windows -> Caixa de Pesquisa ( Digite aqui para pesquisar ). Lá digite ' Serviços '. Entre os itens listados, clique em aplicativo de serviços .
  2. Agora pesquise ' Docker Desktop Service ' na janela de serviços aberta. Clique com o botão direito nele e inicie o serviço. Seu status deve ser alterado para 'Em execução '.
  3. Se a etapa 2 apresentar um erro como ' o serviço de dependência falhou ao iniciar ', inicie todos os serviços de dependência. Para mim, tive que iniciar um serviço chamado ' Servidor '.
  4. Clique duas vezes no ícone ' Docker Desktop ' na área de trabalho. Agora você verá ' Docker Desktop está em execução ' na bandeja do sistema.
  5. Agora execute o comando ' docker version ' no Prompt de Comando ou PowerShell . Deve dar uma saída limpa.
  6. Se houver algum problema na etapa 5, execute o Prompt de Comando ou PowerShell como administrador.

A resolução acima assume que o Docker já está instalado e o Hyper-V / Virtualization está habilitado em seu sistema.

RLD
fonte
O serviço do servidor inicial funcionou.
Lordran
3

Eu enfrentei o mesmo problema, pode ser um problema de administrador, então siga as etapas abaixo para configurar o docker no

windows10

.

  1. Baixe o docker desktop do docker hub após fazer o login no docker. Docker Desktop Installer.exeo arquivo será baixado.
  2. Instalar Docker Desktop Installer.exe usandoRun as administrator -> Marcar contêiner do Windows durante a instalação, caso contrário, ele instalará apenas o contêiner Linux. Ele solicitará o logout após o logout e o login mostrará a área de trabalho do docker no menu.
  3. Após a instalação, vá para -> gerenciamento do computador -> Usuários e grupos locais -> Grupos -> docker-user -> Adicionar usuário aos membros insira a descrição da imagem aqui
  4. Execute o docker desktop usando Run as administrator insira a descrição da imagem aqui
  5. Verifique o ícone da docker whale na guia Notificação insira a descrição da imagem aqui
  6. run command> docker version insira a descrição da imagem aqui Usando o docker com sucesso sem qualquer problema.
naveen dahiya
fonte
3

Abra a unidade C no PowerShell ou Git bash e execute o comando abaixo

.\Program Files\Docker\Docker\DockerCli.exe -SwitchDaemon
Amit Kumar
fonte
isso funcionou para mim .. obrigado :)
Harsha Biyani
2

Para mim, o problema era que a virtualização não estava habilitada.

No Windows 10: Vá para o gerenciador de tarefas -> Desempenho -> CPU e você deverá ver uma seção como "Virtualização: Ativado"

Se você não vir esta opção, significa que a virtualização não foi habilitada.

Outra coisa interessante a observar é que você deve ter o Hyper V habilitado. No entanto, como eu estava usando a área de trabalho paralela, tive que habilitar a "Virtualização aninhada" para que o Hyper V fosse "realmente habilitado". Portanto, se o seu Windows for uma VM, verifique as configurações do Parallels (ou o que quer que você esteja usando) em que a virtualização aninhada está habilitada.

Prasanth Louis
fonte
2

Eu estava recebendo os mesmos erros após uma instalação no Windows 10. E tentei reiniciar, mas não funcionou, então fiz o seguinte ( não recomendo se você está trabalhando no docker há algum tempo, esta foi em uma instalação nova):

1) Encontre a baleia na bandeja do sistema e clique com o botão direito

2) Vá para configurações> Redefinir

3) Redefinir para os padrões de fábrica

Consegui então seguir o tutorial inicial do docker no site com o Windows 10 e agora funciona perfeitamente.

cela
fonte
Não há nenhuma baleia na bandeja do sistema.
Chloe
Há um vm padrão em execução na minha máquina que está executando o docker worker, eu reiniciei esse vm e resolvi o erro do docker no Windows
Freelancer
2

Eu tive o mesmo problema recentemente. O problema era que o software de segurança (Trendmicro) estava bloqueando o docker para criar a interface de rede Hyperv. Você também deve verificar o firewall, o software AV não bloqueia a instalação ou configuração.

Haltunbay
fonte
Obrigado. Isso ajudou.
sv_vs
2

Se nenhuma das outras respostas funcionar para você, tente o seguinte: Abra um terminal e execute:

wsl -l -v 

Se você notar que há um docker-desktop pendurado no estado 'Instalando', feche o Docker, execute o PowerShell como administrador e cancele o registro do docker-desktop:

PS C:\WINDOWS\system32> .\wslconfig.exe /u docker-desktop

Reinicie o docker e espero que funcione. Caso contrário, tente desinstalar primeiro o docker, depois cancelar o registro do docker-desktop e reinstalar o Docker.

Fonte: https://github.com/docker/for-win/issues/7295#issuecomment-645989416

Dave
fonte
1

Estou usando o Windows 7 com Docker Toolbox e para consertar basta abrir o Docker Quickstart Terminal.

$ docker version Cliente: Versão: 17.05.0-ce Versão API: 1.29 Versão Go: go1.7.5 Git commit: 89658be Construído: Sex 5 de maio 15:36:11 2017 OS / Arch: windows / amd64

Servidor: Versão: 17.05.0-ce Versão API: 1.29 (versão mínima 1.12) Versão Go: go1.7.5 Git commit: 89658be Construído: Qui, 4 de maio 21:43:09 2017 OS / Arch: linux / amd64 Experimental: falso

Xelian
fonte
1

Para mim, o erro foi resolvido interrompendo uma instância virtual do Ubuntu que estava em execução no Hyper-V:

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.

Depois que a instância do Ubuntu foi interrompida e o Docker Desktop reiniciado, meus comandos usuais do docker funcionaram perfeitamente.

PS: Tive a ideia de tentar isso por causa de um log de erros que o Docker Desktop compilou e se ofereceu para enviar ao Docker Hub como feedback do usuário ... o log parecia indicar que minha máquina estava com falta de RAM e o Docker estava falhando por este motivo muito simples. Matar a instância do Ubuntu resolveu isso.

olisteadman
fonte
1

Para win10, tive o mesmo problema:

error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/images/load?quiet=0: 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.

O serviço docker parecia funcionar. Reiniciar não ajudou. A execução do binário a partir do diretório de instalação como administrador ajudou.

No meu caso:

run as administrator -> C:\Program Files\Docker\Docker\Docker for Windows.exe
Mateusz Wicher
fonte
Isso resolveu meu problema. Executando o docker windows CE com contêineres do Windows. Obrigado!
AA
'"C:\Program Files\Docker\Docker\Docker for Windows.exe"' is not recognized as an internal or external command, operable program or batch file.
Chloe
1

Um dos meus amigos estava tendo um problema semelhante, tentamos isso e funcionou.

O Hyper-V, apesar de estar listado em "Ativar ou desativar recursos do Windows" como ativo, na verdade não estava ativo. Isso se tornou aparente ao executar o systeminfo no PowerShell e ver que os requisitos foram listados como atendidos (que não é a saída que você esperaria se o Hyper-V estivesse realmente em execução).

  1. Abra "Ativar ou desativar recursos do Windows"
  2. Se você não tiver certeza de como fazer isso, consulte https://www.howtogeek.com/250228/what-windows-10s-optional-features-do-and-how-to-[turn-them-on-or- desligado /] [1]
  3. Desative o Hyper-V (desmarque a caixa, certificando-se de que todos os subcomponentes estejam marcados como desativados)
  4. Clique em “Ok” - e sua máquina irá reiniciar.
  5. Quando o computador for reiniciado, abra "Ativar ou desativar recursos do Windows" e ligue o Hyper-V novamente. Sua máquina será reiniciada novamente.

Agora você pode testar executando docker hello-world image.

Supreet Singh
fonte
0

Eu corro para o mesmo problema. Resolvi isso habilitando o hyper-v.

  1. Ativar virtualização no BIOS
  2. Instale o hyper-v
Raposa vermelha
fonte
0

Tente executar o seguinte em um prompt de comando elevado:

SET DOCKER_CERT_PATH=C:\Users\[YourName]\.docker\machine\machines\default
SET DOCKER_HOST=tcp://[yourDockerDeamonIp]:2376
SET DOCKER_MACHINE_NAME=default
SET DOCKER_TLS_VERIFY=1
SET DOCKER_TOOLBOX_INSTALL_PATH=C:\Program Files\Docker Toolbox

Você também pode descobrir que, mesmo sem definir essas variáveis ​​env, a execução de comandos a partir do terminal de início rápido do docker funciona sem problemas.

KidCode
fonte
Podemos ter uma explicação do que esses comandos fazem? Não me sinto confortável configurando meu DOCKER_HOST para algum endereço IP que sei que não existe em minha rede.
Bobort
Desculpas, esse era o IP local do meu daemon docker. Eu removi agora.
KidCode
0

Eu também enfrentei o erro que diz

"Access is denied. 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."

Resolvido isso executando "powershell" no modo de administrador.

Shashank G
fonte
0

Resolvido para mim ao executar um aplicativo de desktop docker, notificação de check-in. Configure se necessário.

$ net start com.docker.service

O serviço Docker for Windows Service está sendo iniciado. O serviço Docker for Windows Service foi iniciado com sucesso.

$ docker version

$ net start com.docker.service

O serviço solicitado já foi iniciado.

user311086
fonte
0

com a atualização recente do docker, tive um problema que era o app docker travado na inicialização. Resolvi isso encerrando o wsl.exe usando o gerenciador de tarefas.

insira a descrição da imagem aqui

Suyama Madushan
fonte
0

Para mim, esse problema foi resolvido cantando no Docker Desktop.

insira a descrição da imagem aqui

Atul Jain
fonte
0

Você precisa do privilégio de administrador para executar o serviço

Eu tive o mesmo problema. O problema desaparece quando executo o prompt de comando (execute como administrador "e digite" versão docker ".

C: \ WINDOWS \ system32> versão docker

Cliente: Docker Engine - Versão da comunidade: 19.03.8 Versão da API: 1.40 Versão Go: go1.12.17 Git commit: afacb8b Construído: Quarta, 11 de março 01:23:10 2020 OS / Arch: windows / amd64 Experimental: falso

Servidor: Docker Engine - Community Engine: Versão: 19.03.8 Versão API: 1.40 (versão mínima 1.12) Versão Go: go1.12.17 Git commit: afacb8b Construído: Quarta, 11 de março 01:29:16 2020 OS / Arch: linux / amd64 Experimental: false containerd: Versão: v1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Versão: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df18 GitCommit 1.0a9dd: fecmit3 0.68.068 versão: fecmit3: fecmit3 0.68

Mitchell
fonte
0

Enfrentou o problema semelhante, tendo instalado o docker desktop em uma VM Windows, rodando em WSL2.

Solução:

Atualizado o Windows para a compilação mais recente e o VMTools para a versão mais recente (11.2), corrigiu o problema, agora o docker está funcionando sem parar.

Sasi Kumar M
fonte
0

Minha solução foi bem simples. Percebi que o docker estava executando contêineres Linux em vez de contêineres do Windows. O que fiz foi mudar para contêineres do Windows clicando com o botão direito do mouse no ícone do dock na bandeja do sistema e escolhendo Mudar para contêineres do Windows .

briancoder
fonte
0

Depois de instalar o docker desktop em seu pc (windows one). Você pode encontrar este local. O que realmente faz ,? Ele inicia o Docker Daemon por meio de sua CLI

"C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon
Dinuwan Kalubowila
fonte
Forneça mais detalhes para sua resposta, caso contrário, ela pode ser marcada como de baixa qualidade.
Ethan Vu,
depois de instalar o docker desktop em seu pc (windows one). Você pode encontrar este local. O que realmente faz ,? Ele inicia o Docker Daemon por meio de sua CLI
Dinuwan Kalubowila,
Eu editei sua resposta para adicionar detalhes de acordo com seu comentário. Você também pode editar a resposta. E há um artigo sobre como escrever respostas que obtêm votos positivos , é legal.
Ethan Vu