Installing Docker Engine
on Linux Mint Xia

Russell Bateman
August 2025

When you are running Linux Mint, which sits atop Ubuntu, and you look for a method by which you can install Docker as a systemd service, you typically find information on the Ubuntu installation.

There is a great pitfall in the instructions. I'm going to copy those instructions here and display the work-around in the faulty one. The instructions I'm following are (were) available Googling using this string, "how to install docker engine on ubuntu as a systemd service ubuntu noble" and getting an AI Overview. I think they're from some "dockerdocs" page.

In my case, I have just wiped my development host and installed fresh Linux Mint 22.1 Xia (Ubuntu noble).

Docker installation steps

  1. Installing Docker Engine on Ubuntu Noble Numbat (24.04 LTS) and ensuring it runs as a systemd service involves adding the official Docker repository, installing the necessary packages, and then managing the service with systemctl.

  2. The instructions I read begin here:
  3. Open a new console and issue this command. In this way we'll save ourselves the monotony and visual encumbrance of seeing it everywhere. Instead, # denotes that the issuer has root privileges.
    $ sudo bash
    
  4. Update the apt package index and install prerequisites:
    # apt update
    # apt install ca-certificates curl gnupg lsb-release -y
    
  5. Add Docker's official GPG key:
    # install -m 0755 -d /etc/apt/keyrings
    # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    # chmod a+r /etc/apt/keyrings/docker.gpg
    
  6. This instruction is what I modified to fix an apt disaster:
  7. Add the Docker repository to apt sources. This is where things go south because $VERSION_CODENAME will come out xia instead of noble. There is no repository for Mint Xia. To fix this, we exchange $UBUNTU_CODENAME for it: 1
    # echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | tee
      /etc/apt/sources.list.d/docker.list > /dev/null
    
    
  8. The instructions I read pick back up here:
  9. Install Docker Engine:
    # apt update
    # apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    
  10. Verify Docker is running and enabled as a systemd service: Docker Engine is automatically configured to run as a systemd service after installation. You can verify its status and enable it to start on boot if it's not already:
    
    # systemctl status docker
    # systemctl enable docker
    
  11. (Optional) Add your user to the docker group: To run Docker commands without sudo, add your user to the docker group. You will need to log out and back in for the changes to take effect.
    
    # usermod -aG docker $USER
    
  12. After these steps, Docker Engine will be installed on your Ubuntu Noble system and managed as a systemd service, starting automatically at boot.

  13. The instructions I read ended with the one above.
  14. As you see here, Docker Engine as a systemd service works verifiably:
    # systemctl status docker
     docker.service - Docker Application Container Engine
         Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
         Active: active (running) since Fri 2025-08-15 15:04:10 MDT; 11s ago
    TriggeredBy:  docker.socket
           Docs: https://docs.docker.com
       Main PID: 160810 (dockerd)
          Tasks: 20
         Memory: 30.0M (peak: 31.5M)
            CPU: 226ms
         CGroup: /system.slice/docker.service
                 └─160810 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    
    Aug 15 15:04:09 tirion dockerd[160810]: time="2025-08-15T15:04:09.760130309-06:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
    Aug 15 15:04:09 tirion dockerd[160810]: time="2025-08-15T15:04:09.789242663-06:00" level=info msg="Loading containers: start."
    Aug 15 15:04:10 tirion dockerd[160810]: time="2025-08-15T15:04:10.065414419-06:00" level=warning msg="Error (Unable to complete atomic operation, key modified) deleting obj>
    Aug 15 15:04:10 tirion dockerd[160810]: time="2025-08-15T15:04:10.089672799-06:00" level=info msg="Loading containers: done."
    Aug 15 15:04:10 tirion dockerd[160810]: time="2025-08-15T15:04:10.121861822-06:00" level=info msg="Docker daemon" commit=bea959c containerd-snapshotter=false storage-driver>
    Aug 15 15:04:10 tirion dockerd[160810]: time="2025-08-15T15:04:10.121896433-06:00" level=info msg="Initializing buildkit"
    Aug 15 15:04:10 tirion dockerd[160810]: time="2025-08-15T15:04:10.184918537-06:00" level=info msg="Completed buildkit initialization"
    Aug 15 15:04:10 tirion dockerd[160810]: time="2025-08-15T15:04:10.187337935-06:00" level=info msg="Daemon has completed initialization"
    Aug 15 15:04:10 tirion dockerd[160810]: time="2025-08-15T15:04:10.187370450-06:00" level=info msg="API listen on /run/docker.sock"
    Aug 15 15:04:10 tirion systemd[1]: Started docker.service - Docker Application Container Engine.
    # docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    # exit
    $ docker ps    # (In other words, instruction #8 worked)
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    

Notes

1 This is because performing cat /etc/os-release yields what you see below:
$ cat /etc/os-release
NAME="Linux Mint"
VERSION="22.1 (Xia)"
ID=linuxmint
ID_LIKE="ubuntu debian"
PRETTY_NAME="Linux Mint 22.1"
VERSION_ID="22.1"
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/"
VERSION_CODENAME=xia
UBUNTU_CODENAME=noble
We want the final apt source-list string to be:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu   noble stable
...and not exhibit "xia" where "noble" is (above).