TheGameiswar
TheGameiswar

Reputation: 28930

Unable to start Docker in WSL2 using new Windows Terminal

I have recently installed WSL2 and installed Ubuntu from Microsoft Store.When i run docker using

Sudo service docker start, i get below message

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

I followed steps as per this Answer and did below

    sudo groupadd docker
sudo usermod -aG docker $(whoami)

But still cant start docker..when checking Docker logs, i could see below

CONNECTING" module=grpc Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N DOCKER: iptables v1.6.1: can't initialize iptables table nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. (exit status 3) `

Upvotes: 20

Views: 23558

Answers (4)

er.bhargav.vyas
er.bhargav.vyas

Reputation: 411

I might be late but I faced similar problem and the solution was completely different.
I am posting here for someone if he/she gets similar issue.

Problem I Faced.

I setup wsl and docker in my new machine. I can not run dockerd in wsl2. As TheGameiswar suggest I can start the dockerd if I run the terminal as Admin but I still can not run any image.

The root cause

By default the wsl is version 1 (wsl 1) and docker required wsl2.

Solution

Set the default wsl version to 2

wsl --set-default-version 2

set the installed distro to wsl2

wsl --set-version  Ubuntu-20.04 2

Upvotes: 9

Spithas
Spithas

Reputation: 381

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

from https://forums.docker.com/t/failing-to-start-dockerd-failed-to-create-nat-chain-docker/78269

Upvotes: 21

TheGameiswar
TheGameiswar

Reputation: 28930

I have tried a lot of steps based on the error below

can't initialize iptables table nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. (exit status 3) `

But Starting Terminal as administrator worked.Even though you run

sudo service docker start

The Terminal should be launched as Admin

Upvotes: 40

Damo
Damo

Reputation: 6443

There is a great guide here which gives some up to date instructions and some prerequisites on using WSL 2 and the new docker desktop.

Upvotes: 1

Related Questions