docker.errors.DockerException: Error while fetching server API version

I want to install this module but there is something wrong when I try the step docker-compose build ...

I tried to update the Docker version and restart Docker many times. But it didn't work.

git clone cd 158 docker-compose build 
File "/home/ming/.local/bin/docker-compose", line 8, in <module> sys.exit(main()) File "/home/ming/.local/lib/python3.8/site-packages/compose/cli/main.py", line 67, in main command() File "/home/ming/.local/lib/python3.8/site-packages/compose/cli/main.py", line 123, in perform_command project = project_from_options('.', options) File "/home/ming/.local/lib/python3.8/site-packages/compose/cli/command.py", line 60, in project_from_options return get_project( File "/home/ming/.local/lib/python3.8/site-packages/compose/cli/command.py", line 131, in get_project client = get_client( File "/home/ming/.local/lib/python3.8/site-packages/compose/cli/docker_client.py", line 41, in get_client client = docker_client( File "/home/ming/.local/lib/python3.8/site-packages/compose/cli/docker_client.py", line 170, in docker_client client = APIClient(**kwargs) File "/home/ming/.local/lib/python3.8/site-packages/docker/api/client.py", line 188, in __init__ self._version = self._retrieve_server_version() File "/home/ming/.local/lib/python3.8/site-packages/docker/api/client.py", line 212, in _retrieve_server_version raise DockerException( docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory')) 

Update 2020-11-23

Thanks for two of you helping me with the error! I tried the commend but can't connect to my Docker:

ming@KITM-7664:~$ sudo /etc/init.d/docker start [sudo] password for ming: * Starting Docker: docker [ OK ] ming@KITM-7664:~$ which docker /usr/bin/docker ming@KITM-7664:~$ docker version Client: Docker Engine - Community Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:02:52 2020 OS/Arch: linux/amd64 Experimental: false Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? ming@KITM-7664:~$ systemctl status docker System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down ming@KITM-7664:~$ systemctl start docker System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down ming@KITM-7664:~$ sudo /etc/init.d/docker start * Starting Docker: docker [ OK ] ming@KITM-7664:~$ docker version Client: Docker Engine - Community Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:02:52 2020 OS/Arch: linux/amd64 Experimental: false Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 
2

22 Answers

Are you sure docker is running on your system? You can get that error when compose is not able to connect to docker via docker socket (if any other way for connection is not defined).

If you are running on linux, usually you can run systemctl status docker to check if docker daemon is running and systemctl start docker to start it.

It would help to tell what OS and docker version are you using.

10

set the permission like this,

sudo chmod 666 /var/run/docker.sock 
7

When you are using WSL (Windows Subsystem for Linux), you need to enable 'WSL Integration' for the required distro in Windows Docker Desktop (Settings -> Resources-> WSL Integration -> Enable integration with required distros).

WSL Integration

2

By default, the docker command can only be run the root user or by a user in the docker group, which is automatically created during Docker’s installation process. If you want to avoid typing sudo whenever you run the docker command, add your username to the docker group:

sudo usermod -aG docker ${USER} 

To apply the new group membership, log out of the server and back in, or type the following:

su - ${USER} 

You will be prompted to enter your user’s password to continue.

2

sudo service docker start or
sudo service docker restart

3

Just had the same issue after updating Windows Docker desktop to it's latest version (20.10.2, build 2291f61). It happened that this update disabled the WSL2 integration with my virtual Ubuntu 18.04, which I use to run most projects.

I solved it this way:

  1. Open Docker Desktop
  2. Go to Settings > Resources > WSL Integration
  3. Make sure that your distribution is enabled
  4. Restart Docker
  5. Without the need of restarting WSL2, docker should work again

Docker Desktop distro integration

I had this issue while starting docker-compose. The problem was caused by `urllib3'. The fix is simple:

pip install 'urllib3<2' 

Source:

1

I had a similar issue and it turned out to be due to Docker server not running. I started the app and then ran docker-compose up and it started working fine. Hope it helps anyone who's caught in a similar situation. :-)

You don't have permission to use the docker socket, by default only the docker group can access it. You can verify this with ls -l /var/run/docker.sock, which will print something like:

srw-rw----. 1 root docker 0 Oct 4 18:04 /var/run/docker.sock 

To be able to access the socket and use Docker, add yourself to the Docker group with the following command:

sudo usermod -a -G docker $(whoami)

Then logout and back in. Docker will now work.

Make sure you check the box for 'use Docker Compose V2'. It solved for me. docker desktop

1

In macOS with Docker Desktop 4.18, check Enable default docker socket in Settings -> Advanced section.

2

If you're using docker-compose inside podman try the below command to resolve this issue "docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))"

systemctl start podman.socket 

At Linux (at least Ubuntu 18.04.x), you sometimes need to log out and re-login your X user session. Logging out of bash or out of the terminal window and re-logging in is not enough, see for example

In Mac OS and Windows sometimes that's enough to start up docker application and this error is because of loss of docker daemon in system.

My issue was I was not signed into docker desktop.

I had this error running docker compose in Linux Subsystem on Win10, the problem was that I have forgotten to start Docker Desktop application

On MacOS I installed XCode after Docker (Docker Desktop). Afterwards my Python App (testcontainers) was unable to communicate to Docker (stopped working). Running /Applications/ and open Docker again fixed it for me on M1 MacBook. (Removes config, images, ...)

1

I had this problem while using ubuntu 22.04 wsl on windows and then I solve it like this

sudo update-alternatives --config iptables 

it will show something like this

 Selection Path Priority Status ------------------------------------------------------------ 0 /usr/sbin/iptables-nft 20 auto mode * 1 /usr/sbin/iptables-legacy 10 manual mode 2 /usr/sbin/iptables-nft 20 manual mode 

then press 1

Press <enter> to keep the current choice[*], or type selection number: 1 

Start docker using services

sudo service docker start 

I'm also get this error when i try to run the docker-compose and docker desktop is turn off, i think that is bug in docker-compose that not notify the user it that the problem is becuse the docker service is down, same as the docker cli that throw correct error:

C:\Users\x\IdeaProjects\mongo-exmple>docker pull node Using default tag: latest error during connect: This error may indicate that the docker daemon is not running.: Post "": open //./pipe/docker_engine: The system cannot find the file specified. 

I had this happen on a Mac after doing an OS update.

I was able to run docker on the command line but Docker Desktop wasn't running - starting Docker Desktop up fixed the issue.

On macOS, deleting Docker's data has worked for me:

rm -rf ~/Library/Containers/com.docker.* 

It's a crude solution, and I wouldn't recommend if you have any precious data in your local docker install.

In Windows exiting from Docker and running it again sometimes helps. Apparently not always docker starts up properly.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like