Blog

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 nginx nebo mariadb. 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říkazCo dělá
docker psběžící kontejnery (s -a i zastavené)
docker logs -f webvýstup kontejneru v reálném čase
docker exec -it web shpříkazový řádek uvnitř kontejneru
docker stop webzastaví kontejner
docker rm websmaže zastavený kontejner
docker imagesstaž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.yaml a 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 pull a 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.

Zobrazit balíčky