Search code examples
dockerboot2docker

Docker FATA[0000] on Mac


I have following error when I try to use docker on my Mac:

FATA[0000] Get http:///var/run/docker.sock/v1.17/version: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

It doesn't matter if I use sudo or not... It doesn't matter which docker command I use or if I use brew or boot2docker to install it...

What should I do to resolve this issue ?


Solution

  • The Docker daemon does not run natively on a Mac. Until it does, there will never be a socket for communicating with the daemon at /var/run/. You must therefore use TCP to communicate with the daemon because the daemon must be running on another machine (or a VM). Unix sockets only talk to processes running on the local machine. The unix socket method is very secure since it is only on the local machine and you must be root (or in the docker group) to talk with this socket.

    Insecure (but easy) TCP Client-Server Communications

    You can run the Docker Engine in a very insecure way by setting some environment variables on the client end and starting your daemon in an insecure way on the daemon end:

    Client: substitute the machine's host IP and port
    DOCKER_HOST=tcp://host:2375
    DOCKER_TLS_VERIFY=0
    
    Daemon
    docker -d -H tcp://0.0.0.0:2375
    

    (see also https://docs.docker.com/reference/commandline/cli/#daemon-socket-option)

    Secure TCP Communications

    Since you probably don't want random people talking to your docker daemon over the internet, you should run with TLS enabled. That's complicated, but all the steps are listed in the docs. boot2docker and kitematic on Macs hides this complexity by setting up the TLS certificates for you and setting the environment variables needed to find the daemon.