Server and container basics

Short explanations of the server and container basics the tools build on.

The tools on this site assume a few basics: what a container and an image are, how ports and volumes work, what a reverse proxy does and how a server is prepared on its first boot.

This topic collects short explanations of those basics, and small developer utilities that go with them, written to be read next to the tool that uses them.

A recommended path

  1. Start with the server

    What a virtual server is, how you reach it over SSH and what is set up on its first boot.

  2. Then the containers

    Images, containers, ports and volumes, and how Docker Compose ties them together.

  3. Then the network

    DNS, TLS and a reverse proxy in front of the apps.

Tools and pages

Tools and pages
PageTypeAbout
Docker port publishing: 127.0.0.1, 0.0.0.0 and ufwReadingWho can reach a container's port depends on how it is published, not on ufw. Switch between an unpublished port, one published on every address and one published on 127.0.0.1, with ufw on or off, and see who gets through.
What takes VRAM when you run an LLMReadingGPU memory for a language model is three things: the weights, the KV cache and the runtime's overhead. Change the model, the quantization, the context length and the number of concurrent requests, and watch which part grows.
How cloud-init runs on the first bootReadingcloud-init applies your user-data in five boot stages, and most of it only once per instance. Step through the stages, see where each key of a #cloud-config runs, and what runs again after a reboot.

See also: Methodology · Free tools

Next step

Free tools