18

I installed docker and there seems to be some issue.

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

$sudo docker ps

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

What should I do?

5

8 Answers 8

34

You need to set up your shell to use Docker: eval $(docker-machine env default) Where does this command come from? Run docker-machine env default and you'll see something like the following:

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/eric/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell: 
# eval $(docker-machine env default)

Also you may or may not have to simply start the Docker host beforehand via: docker-machine start default

4
  • 2
    What if "default" is already running, and I still cannot connect to the Docker daemon? Commented Oct 11, 2016 at 17:53
  • 1
    This doesn't work with latest version of docker on Mac , can you please tell what is equivalent of this ?
    – vikramvi
    Commented Oct 13, 2016 at 10:29
  • Thanks !! works perfectly ! I had to run docker-machine start default and then docker-machine env default
    – shimi_tap
    Commented Feb 27, 2017 at 19:55
  • I had to switch my shell from tcsh to bash to get this to work. Commented Mar 12, 2017 at 4:48
10

docker-machine is a legacy stuff for OSX that operates with VirtualBox. What you should do is get rid of it completely, and then you should download the latest version of docker, that is called Docker for Mac

Make sure, you remove the legacy docker, and the docker-machine from your Mac before installing Docker for Mac. If you do not do that, the legacy docker binary will be favoured after the installation, and you will still get the error message, which says that cannot connect to the Docker daemon.

6

I had this same issue I solved it in the following steps:

docker-machine restart

Quit terminal (or iTerm2, etc, etc) and restart

eval $(docker-machine env default)
4

I just had this problem. I was using the old docker-machine and I switched to the latest docker for mac. Running eval $(docker-machine env default) sets up some environment variables.

To solve my problem, I unset those environment variables...

unset DOCKER_HOST DOCKER_MACHINE_NAME DOCKER_TLS_VERIFY DOCKER_CERT_PATH

0

if you are using docker toolbox, type this before running the docker ps command to set the environment

docker-machine env default
0

to have it persistent on new terminals & reboot put it to the bash_profile file

echo "eval \$(docker-machine env default)" >> ~/.bash_profile
0

remove the export DOCKER_HOST.... from your environment (.bashrc, .bash_profile what have you), restart shell/terminal, worked for me.

0
  1. Install docker desktop if not installed. (https://docs.docker.com/desktop/install/mac-install/)
  2. Run docker desktop. This will make docker running in the background.
  3. Use docker ps and it will work as expected.

Not the answer you're looking for? Browse other questions tagged or ask your own question.