Got permission denied while trying to connect to the Docker daemon socket
Published: 2023-06-05 15:11:23

The "permission denied" error message indicates that the user running the Docker command does not have the necessary permissions to access the Docker daemon socket.

## Using WSL
To use Ubuntu on Windows, you can utilize the Windows Subsystem for Linux (WSL), specifically WSL 2, which allows you to run a Linux environment directly on your Windows machine. Here's how you can set up and use Ubuntu on Windows:

### 1. Enable Windows Subsystem for Linux (WSL):

Open PowerShell as an administrator.
Run the following command to enable the WSL feature:
```bash
wsl --install
```
Follow the prompts to enable the necessary components. This may require a system restart.

### 2. Install Ubuntu from the Microsoft Store:

Open the Microsoft Store on your Windows machine.
Search for "Ubuntu" and select the version you want to install (e.g., Ubuntu 20.04 LTS).
Click the "Install" button to start the installation.

### 3. Launch and set up Ubuntu:

Once the installation is complete, you can launch Ubuntu from the Start menu or by searching for "Ubuntu" in the search bar.
The first time you launch Ubuntu, it will take a moment to set up the necessary files. You will be prompted to create a new username and password for your Ubuntu installation.

### 4. Use Ubuntu on Windows:

After the initial setup, you will have access to a full Ubuntu shell within your Windows environment.

You can run Ubuntu commands, install packages using the apt package manager, and use many Linux tools and utilities.
The Ubuntu files and filesystem are located within the Windows file system, allowing you to easily access and work with your Windows files from the Ubuntu environment.

Please note that while WSL provides a Linux environment, it is not a complete standalone installation. It runs alongside Windows, sharing some resources, and may have certain limitations depending on the specific use case.

## Install Docker on WSL

To install Docker on WSL (Windows Subsystem for Linux), you can follow these steps:

### 1. Enable WSL 2:

Open PowerShell as an administrator.
Run the following command to set WSL 2 as the default version:
```bash
wsl --set-default-version 2
```
If prompted, download the WSL 2 Linux kernel update package from Microsoft.

### 2. Install Ubuntu from the Microsoft Store (if not already installed):

Open the Microsoft Store on your Windows machine.
Search for "Ubuntu" and select the version you want to install (e.g., Ubuntu 20.04 LTS).
Click the "Install" button to start the installation.

### 3. Launch Ubuntu:

Once Ubuntu is installed, launch it from the Start menu or by searching for "Ubuntu" in the search bar.
Complete the initial setup by creating a new username and password.

### 4. Update Ubuntu:

After launching Ubuntu, update the package lists and upgrade existing packages by running the following commands:
```bash
sudo apt update
sudo apt upgrade
```
### 5. Install Docker:

Install the required packages by running the following command:
```bash
sudo apt install docker.io
```
### 6. Add your user to the Docker group:

By default, the Docker daemon requires root privileges to run. To use Docker without sudo, add your user to the Docker group with the following command:
```bash
sudo usermod -aG docker $USER
```
### 7. Verify Docker installation:

Start the Docker service by running:
```bash
sudo service docker start
```
Check the Docker version to ensure it is installed correctly:
```bash
docker version
```

If there is still Permission Denied Issue:
### 8. Verify correct socket permissions:
Check the permissions of the Docker daemon socket by running:
```bash
ls -l /var/run/docker.sock
```
The output should show that the socket is owned by the "docker" group and has read and write permissions for the group.
If the permissions are incorrect, you can adjust them with the following command:
```
sudo chmod 666 /var/run/docker.sock
```

### 9. Test Docker again:

Retry the Docker command that was initially giving you the "permission denied" error.

By following these steps, you should be able to resolve the "permission denied" issue and successfully connect to the Docker daemon socket.