# Installing Docker on LMDE6

Based on the docs at [https://docs.docker.com/engine/install/debian/](https://docs.docker.com/engine/install/debian/), installing docker should go easy. However, when doing so on [LMDE6](https://linuxmint.com/download_lmde.php) ([Linux Mint Debian Edition 6](https://linuxmint.com/download_lmde.php)), one may notice the following error:

```bash
Err:10 https://download.docker.com/linux/debian faye Release
  404  Not Found [IP: 3.161.193.73 443]
Reading package lists... Done
E: The repository 'https://download.docker.com/linux/debian faye Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
```

If you then try to do the docker install, you get:

```bash
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package docker-ce is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package docker-ce-cli is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'docker-ce' has no installation candidate
E: Package 'docker-ce-cli' has no installation candidate
E: Unable to locate package containerd.io
E: Couldn't find any package by glob 'containerd.io'
E: Couldn't find any package by regex 'containerd.io'
E: Unable to locate package docker-buildx-plugin
E: Unable to locate package docker-compose-plugin 
```

## The ISSUE

LinuxMint uses its own codenames. So when the script is pulling `$VERSION_CODENAME` it is getting `faye`, in this case. Docker is looking for the Debian codename, which would be `bookworm`.

## The FIX

So, by changing the variable in the script to the `$DEBIAN_CODENAME`, it will grab the correct information that is needed by the docker script, which is just looking in the file `/etc/os-release`. If you `cat /etc/os-release`, you will see all the info:

```bash
PRETTY_NAME="LMDE 6 (faye)"
NAME="LMDE"
VERSION_ID="6"
VERSION="6 (faye)"
VERSION_CODENAME=faye
ID=linuxmint
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
ID_LIKE=debian
DEBIAN_CODENAME=bookworm   
```

So the actual script you want to run is:

```bash
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$DEBIAN_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```
