#docker #ubuntu ```table-of-contents ``` Installing **Docker** and **Docker Compose** on **Ubuntu** involves a few straightforward steps. It's generally best to install from Docker's official repositories to ensure you have the latest version. --- ## 🐋 Step 1: Uninstall Old Versions (If Applicable) First, remove any existing, potentially conflicting Docker packages: Bash ``` for pkg in docker.io docker-engine docker-ce docker.io docker-compose docker-compose-v2; do sudo apt-get remove $pkg; done ``` --- ## 🛠️ Step 2: Set Up Docker's Repository You need to set up the repository to allow `apt` to use a repository over HTTPS: 1. **Update the `apt` package index:** Bash ``` sudo apt-get update ``` 2. **Install necessary packages:** Bash ``` sudo apt-get install ca-certificates curl ``` 3. **Add Docker's official GPG key:** Bash ``` 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 ``` 4. **Add the repository to `apt` sources:** Bash ``` echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` --- ## 🚀 Step 3: Install Docker Engine Now that the repository is set up, you can install the Docker Engine packages: 1. **Update the `apt` package index again:** Bash ``` sudo apt-get update ``` 2. **Install the Docker packages:** Bash ``` sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` (Note: The `docker-compose-plugin` installs **Docker Compose V2**, which is used via the command `docker compose` instead of `docker-compose`). --- ## ✅ Step 4: Verify the Installation Check that the Docker Engine is running and that the installation was successful by running the test image: Bash ``` sudo docker run hello-world ``` If successful, this command downloads a test image and runs it, printing an informational message before exiting. --- ## 👤 Step 5: Manage Docker as a Non-Root User (Recommended) By default, running Docker commands requires `sudo`. To run Docker without `sudo`, you can add your user to the **`docker` group**: 1. **Add your user to the `docker` group:** Bash ``` sudo usermod -aG docker $USER ``` 2. **Log out and log back in** (or restart your terminal session, or run `newgrp docker`) for the changes to take effect. 3. **Verify without `sudo`:** Bash ``` docker run hello-world ``` You should now have **Docker Engine** and **Docker Compose (V2)** installed and ready to use! Would you like to know some basic **Docker commands** or learn how to write a simple **`docker-compose.yml`** file?