Skip to content

Docker Setup

This guide will walk you through installing and configuring Docker for Ubuntu.

Pre-requisites

Docker Engine depends on containerd and runc. Docker Engine bundles these dependencies as one bundle: containerd.io. If you have installed the containerd or runc previously, uninstall them to avoid conflicts with the versions bundled with Docker Engine.

Run the following command to uninstall all conflicting packages:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)

apt might report that you have none of these packages installed.


Install using the apt repository

Before you install Docker Engine for the first time on a new host machine, you need to set up the Docker apt repository. Afterward, you can install and update Docker from the repository.

  1. Set up Docker's apt repository.

    # Add Docker's official GPG key:
    sudo apt update
    sudo apt install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    
    # Add the repository to Apt sources:
    sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
    Types: deb
    URIs: https://download.docker.com/linux/ubuntu
    Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
    Components: stable
    Signed-By: /etc/apt/keyrings/docker.asc
    EOF
    
    sudo apt update
    

  2. Install the Docker packages.

    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    [!NOTE] Note The Docker service starts automatically after installation. To verify that Docker is running, use:

    sudo systemctl status docker
    
    Some systems may have this behavior disabled and will require a manual start:
    sudo systemctl start docker
    

  3. Verify that the installation is successful by running the hello-world image:

    sudo docker run hello-world
    

Troubleshooting

Permission Error

If you get a permission error, you may need to add your user to the Docker group.

  • Check socket ownership/permissions:

    ls -l /var/run/docker.sock
    # typical: srw-rw---- 1 root docker /var/run/docker.sock
    
  • If socket is owned by root:docker, add your user to the docker group (then restart shell or re-login):

    sudo usermod -aG docker $USER
    # either log out/login or run:
    newgrp docker
    
  • Retry bringing services up (same docker compose command):

    docker compose up -d
    

Next Steps

Once Docker is setup the last step is to create your .env file.