Docker na VPS pro začátečníky: instalace a první kontejnery
28. října 2026·5 min čtení
Docker spouští aplikace v oddělených kontejnerech, které si s sebou nesou vše potřebné. Na VPS díky tomu nainstalujete webový server, databázi nebo monitoring jedním příkazem, bez ručního shánění závislostí, a stejně snadno je zase odstraníte. Níže najdete instalaci, první kontejner, Docker Compose a zásady, které ochrání vaše data i server.
Základní pojmy
- Obraz (image) – šablona aplikace, například
nginxnebomariadb. Stahuje se z registru Docker Hub. - Kontejner – běžící instance obrazu. Z jednoho obrazu spustíte i víc kontejnerů.
- Svazek (volume) – místo pro trvalá data. Kontejner můžete kdykoli smazat a vytvořit znovu, data ve svazku zůstanou.
- Port – kontejner je ve výchozím stavu zvenku nedostupný. Port zpřístupníte zápisem
-p 8080:80(port VPS : port v kontejneru). - Docker Compose – popis jedné nebo více služeb v souboru
compose.yaml, které spustíte jedním příkazem.
Na rozdíl od virtuálního stroje nemá kontejner vlastní operační systém. Sdílí jádro Linuxu s VPS, a proto startuje během vteřin a skoro nic nespotřebuje navíc.
Instalace Dockeru
Nejrychlejší cesta na Ubuntu nebo Debianu je oficiální instalační skript:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo docker run hello-world
Když se vypíše pozdrav „Hello from Docker!“, instalace funguje. Skript nainstaluje i Docker Compose (příkaz docker compose). Pro produkční servery doporučuje dokumentace instalaci z oficiálního repozitáře – postup pro každou distribuci najdete v dokumentaci Dockeru.
Aby váš uživatel nemusel psát sudo, přidejte ho do skupiny docker a znovu se přihlaste:
sudo usermod -aG docker $USER
Členství ve skupině docker odpovídá právům roota. Přidávejte do ní jen uživatele, kterým plně důvěřujete.
První kontejner
docker run -d --name web -p 8080:80 nginx
Parametr -d spustí kontejner na pozadí, --name ho pojmenuje a -p zpřístupní port. Otevřete v prohlížeči http://IP_VPS:8080 a uvidíte uvítací stránku nginx.
| Příkaz | Co dělá |
|---|---|
docker ps | běžící kontejnery (s -a i zastavené) |
docker logs -f web | výstup kontejneru v reálném čase |
docker exec -it web sh | příkazový řádek uvnitř kontejneru |
docker stop web | zastaví kontejner |
docker rm web | smaže zastavený kontejner |
docker images | stažené obrazy |
Docker Compose: celá aplikace v jednom souboru
Dlouhé příkazy docker run se špatně pamatují i opakují. Docker Compose popíše vše v jednom souboru. Vytvořte složku projektu a v ní soubor compose.yaml – tento příklad spustí WordPress s databází MariaDB:
services:
db:
image: mariadb
restart: unless-stopped
environment:
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: zmente-heslo
MARIADB_ROOT_PASSWORD: zmente-root-heslo
volumes:
- db_data:/var/lib/mysql
wordpress:
image: wordpress
restart: unless-stopped
depends_on:
- db
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: zmente-heslo
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
volumes:
db_data:
wp_data:
Ve stejné složce pak služby ovládáte těmito příkazy:
docker compose up -d # spustí vše na pozadí
docker compose ps # stav služeb
docker compose logs -f # logy všech služeb
docker compose down # zastaví a odstraní kontejnery, svazky zůstanou
WordPress se k databázi připojuje přes název služby db. Kontejnery v jednom projektu se navzájem vidí podle jména a databáze přitom není dostupná z internetu, protože nemá zveřejněný žádný port. Volba restart: unless-stopped zajistí, že se služby po restartu VPS nebo po pádu samy znovu spustí.
Data, aktualizace a bezpečnost
Trvalá data
Všechno, co aplikace zapíše mimo svazek, zmizí se smazáním kontejneru. Před nasazením si v dokumentaci obrazu ověřte, které složky patří do svazku. Zálohujte svazky nebo složky, které do kontejnerů připojujete, a databáze navíc exportujte nástrojem mariadb-dump nebo mysqldump uvnitř kontejneru.
Aktualizace
docker compose pull
docker compose up -d
docker image prune
První příkaz stáhne nové verze obrazů, druhý podle nich znovu vytvoří kontejnery a třetí smaže staré nepoužívané obrazy. Před aktualizací databáze nebo větší aplikace si udělejte zálohu. Aby vás nová verze nepřekvapila, uvádějte u obrazů v compose.yaml konkrétní verzi místo výchozí nejnovější.
Pozor na porty a firewall
Docker si pravidla pro zveřejněné porty zapisuje přímo do iptables, takže je firewall ufw nezablokuje. Port uvedený v sekci ports je dostupný z celého internetu, i když ho v ufw povolený nemáte. Služby, ke kterým se má přistupovat jen přes reverzní proxy na stejném serveru, proto navažte na localhost:
ports:
- "127.0.0.1:8080:80"
Databáze a administrační rozhraní nikdy nezveřejňujte bez hesla a bez omezení přístupu. Používejte oficiální obrazy (na Docker Hubu označené jako Docker Official Image) nebo obrazy přímo od autorů aplikace. Neznámý obraz může obsahovat cokoli, třeba program na těžbu kryptoměn.
Co v Dockeru na VPS provozovat
Docker se hodí pro většinu aplikací, které chcete provozovat sami: hlídání dostupnosti Uptime Kuma, správce hesel Vaultwarden, Git server Gitea, automatizaci n8n, webové aplikace s databází nebo vlastní projekty. Další tipy najdete v článku K čemu využít VPS: 10 praktických nápadů. Pro Minecraft nebo FiveM je ale pohodlnější herní hosting s panelem.
Kolik výkonu Docker potřebuje
Docker sám spotřebuje jen málo, rozhoduje součet aplikací, které v něm běží. Aktuální spotřebu procesoru a paměti jednotlivých kontejnerů ukáže příkaz docker stats. Kolik místa na disku zabírají obrazy, kontejnery a svazky, zjistíte příkazem docker system df. Staré obrazy a zastavené kontejnery se časem hromadí, proto je občas uklízejte. Příkazy s parametrem --volumes ale mohou smazat i svazky s daty – používejte je, jen když přesně víte, co mažete.
Shrnutí
- Docker nainstalujete oficiálním skriptem nebo z repozitáře, Docker Compose se nainstaluje s ním.
- Aplikace popisujte v
compose.yamla data ukládejte do svazků. - Zveřejněné porty obcházejí ufw – interní služby navažte na
127.0.0.1. - Aktualizujte přes
docker compose pulla předtím zálohujte.
Na VPS od ColdHostu máte plný root přístup, takže Docker nainstalujete bez omezení. VPS běží na procesorech AMD Ryzen s konektivitou 10 Gbit a DDoS ochranou v ceně, od 299 Kč měsíčně.
Související čtení: Základní Linux příkazy pro správu VPS, K čemu využít VPS a VPS, nebo herní hosting?
VPS od 299 Kč měsíčně
Vlastní virtuální server s root přístupem pro cokoliv, co potřebujete.