Não é possível conectar-se ao daemon do Docker no macOS


205

Normalmente, prefiro gerenciar meus aplicativos no meu OSX com o brew

Sou capaz de instalar docker, docker-componer e docker-machine

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455

Não baixei e executei o aplicativo 'Docker for Mac'.

No entanto, quando tento executar

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

Eu já verifiquei o arquivo de meias

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory

Também tentei a solução proposta: docker sudo do Mac OS X Não é possível conectar-se ao daemon do Docker. O daemon docker está em execução neste host?

Mas recebi esta mensagem de erro:

$ eval $(docker-machine env default)
Host does not exist: "default"

É possível obter um serviço docker para executar por ferramentas de linha de comando?


2
O lançamento do aplicativo Docker a partir do Launchpad, mostrará uma caixa de diálogo solicitando que, para executar o aplicativo, seja necessário algum privilégio concedido para esse aplicativo, depois disso, o Docker voltará ao jogo.
Rafael Kerr

No meu caso, havia outro usuário conectado, por isso estava falhando. Saia de outro usuário e trabalhe então
Raza Ahmed

Respostas:


470

Em um Mac suportado, execute:

brew cask install docker

Em seguida, inicie o aplicativo Docker . Clique em Avançar. Ele solicitará acesso privilegiado. Confirme. Um ícone de baleia deve aparecer na barra superior. Clique nele e aguarde "Docker está sendo executado" para aparecer.

dockerAgora você deve poder executar comandos:

docker ps

Como o docker é um pacote no nível do sistema, você não pode instalá-lo usando brew installe deve usar o barril.

Nota: Esta solução funciona apenas para Macs cujas CPUs suportam virtualização, que pode não incluir Macs antigos.


10
Essa deve ser a resposta aceita. Vá para a plataforma de lançamento após instalar e pesquisar o docker
Joe Lloyd

39
Fiz uma janela de encaixe de instalação de fermentação e o aplicativo não foi instalado até executar o comando janela de encaixe de instalação de fermentação de barril. Obrigado!
jbrahy

2
O que acontece se o comando ainda não funcionar, mesmo após a instalação do barril (e a baleia Docker mostra que está sendo executado após a senha fornecida)?
vol7ron

2
Esta solução funciona apenas para Macs cujas CPUs suportam virtualização. Ele não funciona em um Mac Pro de 2009, por exemplo. Você poderia editar sua resposta para incluir esse fato importante?
John Y

3
Isso me ajudou como eu usei brew install dockerinicialmente. brew installlidar com serviços CLI e brew cask installé uma extensão que ajuda a lidar com serviços com interface gráfica do usuário.
Binoy S Kumar

107

No macOS, o dockerbinário é apenas um cliente e você não pode usá-lo para executar o daemon do docker, porque o daemon do Docker usa recursos específicos do kernel do Linux; portanto, você não pode executar o Docker nativamente no OS X. Portanto, é necessário instalar docker-machinepara criar VM e anexar a ele.

Instale docker-machineno macOS

Se você ainda não possui docker-machinecomando, instale-o usando um dos seguintes métodos:

  • Usando Brew comando: brew install docker-machine docker.
  • Manualmente na página Versões :

    $ curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
    $ chmod +x /usr/local/bin/docker-machine
    

Consulte: Introdução ao Docker para Mac .

Instalar o Virtualbox

docker-machinedepende da instalação do VirtualBox e falhará se esse não for o caso. Se você já possui o VirtualBox, pode pular esta etapa.

  • Usando Homebrew: brew cask install virtualbox
  • Usando manualmente os lançamentos no Virtualbox.org

Você precisará aceitar ativamente o carregamento da extensão do kernel do Virtualbox no painel Segurança do OS X e depois reiniciar a máquina para que os próximos comandos não falhem.Error: VBoxNetAdpCtl: Error while adding new interface

Configurar docker-machineno macOS

Crie uma defaultmáquina (se você não tiver uma, consulte docker-machine ls:):

docker-machine create --driver virtualbox default

Em seguida, configure o ambiente para o cliente Docker:

eval "$(docker-machine env default)"

Em seguida, verifique novamente listando os contêineres:

docker ps

Consulte: Introdução ao Docker Machine e uma VM local .


Palavras-chave:


7
essa deve ser a resposta aceita. Descreve claramente a) por que não funciona; b) instruções para fazê-lo funcionar sem baixar a interface do usuário no OSX; ec) links de referência para leitura adicional.
user2490003

1
Eu também tive que instalar o VirtualBox para obter os comandos janela de encaixe-máquina ao trabalho:brew cask install virtualbox
oligofren

1
Para iniciar um docker-machinelogin, use brew services start docker-machineou, se você não quiser usar o Homebrew, consulte a seção "Iniciar máquinas locais na inicialização" desta página (inclui instruções para Mac).
Chris H.

40

Eu tive esse mesmo problema, resolvi-o nas seguintes etapas:

docker-machine restart

Saia do terminal (ou iTerm2, etc, etc) e reinicie

eval $(docker-machine env default)

Eu também respondi aqui


2
A única eval "deveria" ser tudo que você precisa :)
rogerdpack

15

Eu tenho o Mac OS e abro Launchpade seleciono o dockeraplicativo. Na resetguia, clique em restart.


Sim, você deve iniciar o aplicativo Docker primeiro haha
Ender

12

Tente isso para criar o padrão.

docker-machine create default

5
isso me deu ... docker-machine create default Criando CA: /Users/stens/.docker/machine/certs/ca.pem Criando certificado de cliente: /Users/stens/.docker/machine/certs/cert.pem Em execução verificações de pré-criação ... Erro com a verificação de pré-criação: "VBoxManage não encontrado. Verifique se o VirtualBox está instalado e o VBoxManage está no caminho" .... o que parece errado, pois o VirtualBox não é mais necessário para executar o docker no osx
Scott Stensland 06/06

Parece que você também pode usar xhyve, consulte stackoverflow.com/a/42419979/32453 ou apenas instale o virtualbox :)
rogerdpack

E .. e daí?
FrankyFred

7

no OSX, verifique se você iniciou o aplicativo Docker antes de emitir

docker ps

ou docker build... etc ... sim, parece estranho e um tanto enganoso que a emissão

docker --version

dá a versão mesmo que o daemon do docker não esteja em execução ... idem para os outros cmds da versão ... Acabei de encontrar exatamente os mesmos sintomas ... esse comportamento no OSX é diferente do linux


3

Eu tive o mesmo problema. Docker em execução, mas não pôde acessá-lo através da CLI.

Para mim, o problema foi resolvido executando o "Docker Quickstart Terminal.app". Está localizado na pasta "/ Applications / Docker /". Desde que eu trabalhe nesta instância do aplicativo Terminal, o Docker funciona perfeitamente. Se for necessária uma segunda janela, preciso executar o aplicativo "Início rápido" mais uma vez.

Eu tenho uma instalação do Docker for Mac. Portanto, não tenho certeza se minha solução é válida para uma instalação do Homebrew.

O aplicativo "Docker Quickstart Terminal" parece ser essencialmente alguns scripts de maçãs para iniciar o aplicativo de terminal e um script bash start que inicializa todas as variáveis ​​de ambiente necessárias.

Espero que isso ajude alguém!


3

Eu tinha o docker atualizado, o docker disse que estava em execução e o diagnóstico foi bom. Eu precisava desmarcar alguma variável de ambiente herdada (obrigado https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problems )

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY

1
isso corrigiu meu problema após uma atualização da janela de encaixe baseada na VM para o Mac Installer. Ele continuou procurando a VM.
22718 bobomoreno

usar isso se você ver um endereço IP errado em 'não pode se conectar ... etc'
bobomoreno

2

O Docker para Mac está obsoleto. E você não precisa do Homebrew para executar o Docker no Mac. Em vez disso, você provavelmente desejará instalar o Docker Desktop ou, se já estiver instalado, verifique se está atualizado e em execução e tente conectar-se ao soquete novamente.

insira a descrição da imagem aqui


2

Você deve executar o script para instalar o docker e iniciá-lo na linha de comando:

brew cask install docker
pip3 install docker-compose
open -a Docker
docker-compose ... 

depois disso docker-composedeve funcionar


trabalhou para mim, obrigado
Soul Coder

1

Instale o minikube e junte-se ao lado sombrio.

https://kubernetes.io/docs/tasks/tools/install-minikube/

$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

eval $(minikube docker-env)

$ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate     -i /local/swagger.json     -l python     -o /local/test/
[main] INFO io.swagger.parser.Swagger20Parser - reading from /local/swagger.json
[main] WARN io.swagger.codegen.DefaultGenerator - 'host' not defined in the spec. Default to 'localhost'.

Funciona muito bem no Macbook Pro 2018 com o bash v5. Atualmente, não é necessário instalar todas as outras bobagens do docker IMO. A VM e o script de instalação que acompanham o minikube podem substituir a máquina docker da minha experiência.


Como comentário de acompanhamento, eu precisava do docker também para outro projeto sem o kube e a área de trabalho do docker funciona muito bem. Apenas não inicie sempre, ou então o kube fica irritado com este post.
precisa saber é

1

Eu estava enfrentando um problema semelhante no meu mac e descobri que o docker não estava sendo executado na minha máquina, apenas fui para aplicativos e invoquei o whale e, em seguida, funcionou.



0

Eu simplesmente tive que executar a pesquisa de destaque e executar o aplicativo Docker na pasta / Applications que foi brew cask installcriada. Uma vez executado, ele pediu para concluir a instalação. Eu era capaz de correrdocker ps

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.