This is a machine-translated text that may contain errors!
Installin’ That Docker Engine
Y’all gonna set up that Docker Engine and the Compose plugin on a Linux server right here. Y’all are done when hello-world answers back and Compose spits out a version number. Work it down in the VM’s terminal, one command at a time.
If y’all already got a workin’ setup head over to [[Containerbruk Level 1 - Kjor og undersog en container|Run and inspect a container]].
What is Docker? breaks down images, containers, and registries. Containers and virtual machines shows how they line up with them Linux VMs.
Prerequisites
You need a Debian or Ubuntu server in Proxmox with admin rights. Open the Console on your own VM and log in. Docker is installed and used inside the VM, not in the Proxmox host’s Shell. The whole installation can be done in the console. Logging in from your local machine via 🔐 SSH is a separate topic you can tackle later.
You must know how to show the current directory using pwd, view its contents with ls, and change directories with cd. CLI-øvelsen provides support for working in the terminal. Brukere og rettigheter i Linux explains users and groups; the actual root/sudo setup is covered in the installation guide below.
New to Proxmox or networkin’?
🖥️ Server Setup - VM in Proxmox shows ya how to whip up a virtual machine and get Ubuntu or Debian settin’ down on it, step by step. If you don’t have access to Proxmox, 🖥️ Server Setup - Bare Metal walks ya through the same thing straight onto physical hardware. 🖥️ Virtualization is the test where ye later prove yer can handle this all on yer own. 🌐 Network Protocols covers them IP addresses an’ ports.
Installin’ Docker Engine
Follow along with the official installation guide fer Docker Engine on Debian er Docker Engine on Ubuntu.
Read up on the requirements an’ use Install usin’ the apt repository fer yer operating system. Set up the Docker package source first, then install Docker Engine an’ the Compose plugin just like it’s showed there.
Long commands without copy-paste workin’
Copy and paste don’t usually fly in the Proxmox console, and some lines in them installation guides run long. Type ‘em out one line at a time an’ check every single letter before you hit Enter. If apt update throws a fit after that, it’s likely a typo in the package source or a network hiccup; take a look at “If things go sideways.”
No sudo on Debian?
Follow the recipe for root and sudo before you start. You can install sudo for the regular user, or run admin commands as root in the VM console. As root, leave out sudo at the front o’ them commands.
Settin’ It Up on Debian
These commands here are pulled straight from Docker’s guide back on October 14th, 2026. If they don’t work right, well, Docker mighta changed ‘em up; go compare with the official page then. You be runnin’ Ubuntu, follow the Ubuntu guide instead, since the addresses is different over there.
A few words in what spits outta apt come in Swedish or Danish, like “Sammanfattning” and “Fortsätta?”. That comes from Debian’s Norwegian translation an’ it ain’t got nothin’ to do with gettin’ this thing installed.
1. Fetch Docker’s key. This key lets apt check that the packages actually comin’ from Docker proper.
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/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
2. Add the Docker package repository. Type in the first line and hit Enter. The terminal shows a > before each new line until you type EOF. Then tee prints out the contents of the file. In there, Suites should show your Debian version name, like trixie, fer instance.
# Reckon we need to set up Docker's feed on this rig, partner!
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# Time to refresh the package list, seein' as it's due for a look-over.
sudo apt update
After runnin’ sudo apt update, you oughta see lines from download.docker.com. If they ain’t there, there’s a typo in that file. Check out “If things go sideways.”
3. Install Docker. Give ‘em a Y when apt asks if ya want to keep rollin’.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
The animation also shows sudo docker run hello-world from the control panel below.
Check the installation:
docker --version
docker compose version
sudo systemctl status docker
sudo docker run hello-world
The hello-world downloads a small image, fires up a test container, and spits out a message. Hit q if systemctl status docker shows the result in a pager and y’all want to get back to the terminal.
Use sudo before them Docker commands down the road if your regular user don’t have access rights. If you choose to give that regular user access through the docker group, run the followin’ from that regular user’s session. That group hands over powers same as root; only do this fer a partner who needs to manage the practice server:
sudo usermod -aG docker $USER
If ya run this from a root session without sudo, use usermod -aG docker yourusername an’ swap out yourusername fer yer regular user. The $USER in a root session points to root, not yer usual gal or fella.
Sign off an’ back on again (or give newgrp docker a shot) so the change takes hold. ‘Til then, feel free t’ put sudo before them commands in the next few exercises.
Checkpoint: Docker is Installed
hello-world should have shown Hello from Docker!, and docker compose version should display a version number. If either result is missing, fix the installation before starting up the web server. Feel free to show the command and its response when askin’ for help.
If the installation fails
| Symptom | Check |
|---|---|
docker or docker compose is missing | That both Engine and the Compose plugin are installed per your operating system’s guide. |
permission denied on the Docker command | Try with sudo. Group changes require a new login. |
| The Docker service isn’t running | Read sudo systemctl status docker and the error message before trying again. |
apt update shows Malformed or Unsupported file | Compare the package source file against Docker’s guide character by character. |
NO_PUBKEY or is not signed | Verify that the key was downloaded to the correct path and can be read by apt. |
Could not resolve, Failed to fetch, timeout or dial tcp | The VM cannot reach the package source or registry. Use [[Feilsokingsmetode Level 1 - Systematisk feilsiking|Troubleshooting Method]] to test the network layer by layer. |
Next Steps
Once hello-world has shown Hello from Docker! and Compose displays a version number, proceed to Run and inspect a container. There you fetch Nginx and verify which container is responding.
The container exercise currently stands at Run and inspect a container.
The storage exercises currently stand at Preserve data outside the container.


