Skip to content

Docker, Docker Compose & Must-Have Utilities on Ubuntu 24

February 22, 2026

This tutorial gets your Ubuntu 24 VM (for example the 112-Technitium-DNS_Server VM) ready for running Docker and Docker Compose, plus a small set of must-have utilities that make daily Linux and homelab work easier.


Where This Fits

    flowchart LR
  A[VM 112-Technitium-DNS_Server] --> B[This tutorial]
  B --> C[Docker + Compose + tools]
  C --> D[Technitium in Docker]
  

What You’ll Install

ToolWhy it’s useful
DockerRun apps in containers (e.g. Technitium DNS).
Docker ComposeRun multi-container stacks from one file.
curl / wgetDownload files and test HTTP from the command line.
htopSee CPU and memory usage at a glance.
vim or nanoEdit config files easily.
net-tools / iproute2Inspect network (e.g. ip addr, ss).

Step 1: Update the System

sudo apt update && sudo apt upgrade -y

Step 2: Install Docker (Official Method)

  1. Add Docker’s repository and install:
sudo apt install -y 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
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
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. Add your user to the docker group so you can run Docker without sudo:
sudo usermod -aG docker $USER
  1. Log out and back in (or run newgrp docker), then check:
docker run hello-world

Step 3: Docker Compose (V2 Plugin)

With the steps above you already have Docker Compose V2 as a plugin. Use it like this:

docker compose version

Example: create a folder and a docker-compose.yml for a later service (e.g. Technitium):

mkdir -p ~/technitium && cd ~/technitium
# You'll add your compose file in the Technitium tutorial

Step 4: Must-Have Utilities

Install a small set of tools that help with debugging and day-to-day use:

sudo apt install -y curl wget htop vim nano net-tools iproute2
CommandWhat it does
curl URL / wget URLDownload or test a URL.
htopInteractive process and memory viewer.
vim / nanoText editors for configs.
ip addr / ss -tlnpShow IPs and listening ports.

Quick Check

  • Docker: docker run hello-world runs and exits successfully.
  • Docker Compose: docker compose version prints a version.
  • Utilities: htop, curl -I https://example.com, and ip addr work.

What’s Next?

StepTutorialWhat you’ll do
1Create VM 112-Technitium-DNS_ServerVM with static IP
2You are hereDocker + Compose + utilities
3Technitium DNS Server in DockerInstall and configure Technitium in Docker
4Technitium primary DNS and routerPrimary DNS on VM; router and DHCP

Next: Install Technitium DNS in Docker →