Meet Docker, and get it installed
Almost every app you'll run is packaged with Docker, and most of your self-hosting life happens through it: running containers, reading their logs, editing their compose files. It's the one tool genuinely worth getting comfortable with, so let's meet it properly and get it installed.
The whole idea, in plain words
Three words carry most of it. An image is an app packaged up with everything it needs to run, downloaded ready-made from the internet. A container is a running copy of that image, and the useful part is that it's disposable: you can stop it, delete it, and start a fresh one whenever you like. A port is how you reach the running app, the number you'll type after the server's address to open it in a browser.
Why bother with all this instead of just installing apps the normal way? Because it makes installs repeatable and clean. No hunting down the right version of a database, no dependencies fighting each other, no leftover mess when you remove something. You get the app's image, you run it, and if it goes wrong you throw the container away and start fresh. That's the whole appeal.
Install it
On Ubuntu or Debian, Docker's own install script is the simplest way in (their install docs also have a step-by-step apt method if you prefer). SSH into your server and run:
curl -fsSL https://get.docker.com | shThat installs Docker and the Compose plugin (the thing you'll actually use next lesson). One more step saves you real annoyance: add your user to the docker group so you don't have to type sudo before every command.
sudo usermod -aG docker $USERLog out and back in for that to take effect. Then check the whole thing works by running a tiny test container:
docker run hello-worldIf you see a friendly "Hello from Docker!" message, you're done. Docker downloaded a tiny image, ran it as a container, it printed its message, and exited. That's exactly the cycle every real app will follow, just bigger.
Docker's ready. Now let's point it at something you'll actually keep and install your first real app.