Docker Engine on Linux
The server that will host quicknotes runs Ubuntu, with no screen and no dashboard. There, you do not need Docker Desktop at all: Linux already has the kernel containers need, so you install Docker Engine directly and run it as a background service.
The rule
On Linux, the Engine runs natively: no VM, just a daemon and a socket.
Docker Engine has three parts you should be able to name:
dockerd, the daemon, running as a system service;- the
dockerCLI; - the socket
/var/run/docker.sock, the local door through which the CLI talks to the daemon.
The recommended install uses Docker's own package repository, which carries newer versions than most distributions' built-in packages. On Ubuntu, once that repository is added, the core install is:
sudo apt-get install docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run hello-worldenable --now starts the daemon immediately and on every boot. The official docs walk through adding the repository; follow them for your distribution rather than copying commands from old blog posts.
By default only root and members of the docker group may open the socket. To use Docker without sudo:
sudo usermod -aG docker $USER
# log out and back in so the new group appliesThis comes with a serious warning: anyone who can talk to the daemon can start a container that mounts the host's whole filesystem as root. Membership in the docker group is effectively root access. Add only people you would trust with root. Docker also offers a rootless mode, where the daemon itself runs as an ordinary user, for machines where that trade-off is unacceptable.
The shortcut
When docker fails on Linux, check the path from CLI to daemon in order: is the daemon running, and am I allowed through the socket?
Read the message
It mentions the Docker daemon socket, so the CLI is installed and reached the door but could not open it.
Drills
Answer fast — trust the rule.
Why is no virtual machine needed to run containers on a Linux server?
Through what does the docker CLI talk to the local daemon on Linux by default?
What does sudo systemctl enable --now docker do?
Why should you be careful about adding users to the docker group?
Remember
- On Linux, the Engine runs natively:
dockerdas a service, reached through/var/run/docker.sock. - Shortcut: check CLI → daemon in order: is it running, and may I use the socket?
- Trap: the
dockergroup is root in disguise; consider rootless mode where that matters.
