Instalacja Dockera na VPS - poradnik dla początkujących

Docker pozwala uruchamiać aplikacje w kontenerach: odizolowanych środowiskach, które zawierają wszystko, czego aplikacja potrzebuje. Żadnych konfliktów wersji, żadnego \"ale na moim komputerze działa\". Strony internetowe, bazy danych, boty i serwery gier - wszystko działa we własnym kontenerze z własnymi zależnościami.

Instalacja Dockera na Ubuntu

Zawsze korzystaj z oficjalnego repozytorium Dockera, a nie z repozytorium Ubuntu (które zawiera przestarzałą wersję):

curl -fsSL https://get.docker.com | sh

Ten skrypt wykrywa Twoją dystrybucję i instaluje najnowszy Docker Engine oraz Docker Compose. Sprawdź instalację:

docker --version
docker compose version

Twój pierwszy kontener

Uruchom serwer Nginx w kontenerze:

docker run -d --name webserver -p 80:80 nginx

Otwórz adres IP swojego VPS w przeglądarce. Zobaczysz stronę powitalną Nginx. Kontener działa w tle (-d) i mapuje port 80 kontenera na port 80 hosta.

Docker Compose

Dla bardziej złożonych konfiguracji (wiele kontenerów współpracujących ze sobą) użyj Docker Compose. Utwórz plik docker-compose.yml:

services:
  web:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./site:/usr/share/nginx/html
  db:
    image: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: silnehaslo
      MYSQL_DATABASE: mojadb
    volumes:
      - dbdata:/var/lib/mysql

volumes:
  dbdata:

Uruchom za pomocą docker compose up -d. Oba kontenery wystartują i mogą komunikować się ze sobą przez wewnętrzną nazwę sieci Docker.

Praktyczne przykłady

  • WordPress: docker compose z WordPress + MariaDB. Kompletna strona w pięć minut.
  • Bot Discord: zbuduj Dockerfile dla swojego bota w Pythonie lub Node.js, z automatycznym restartem przez restart: unless-stopped.
  • Baza danych: MariaDB, PostgreSQL lub MongoDB w kontenerze z wolumenem dla trwałych danych.

Najważniejsze komendy

KomendaFunkcja
docker psWyświetlenie działających kontenerów
docker logs nazwakonteneraPodgląd logów
docker stop nazwakonteneraZatrzymanie kontenera
docker rm nazwakonteneraUsunięcie kontenera
docker exec -it nazwakontenera bashOtwarcie powłoki w kontenerze
docker compose up -dUruchomienie wszystkich usług
docker compose downZatrzymanie i usunięcie wszystkich usług

Wolumeny: przechowywanie danych

Kontenery są jednorazowe. Jeśli usuniesz kontener, dane znikają. Wolumeny rozwiązują ten problem: przechowują dane poza kontenerem. Zawsze używaj wolumenu dla baz danych i plików, które chcesz zachować.

Czy Docker jest trudny do nauki?

Podstawy (uruchamianie kontenerów, zatrzymywanie, pisanie plików compose) opanujesz w jedno popołudnie. Zaawansowane tematy (sieci, wieloetapowe buildy, orkiestracja) wymagają więcej czasu, ale dla większości użytkowników VPS nie są potrzebne.

Czy mogę połączyć Dockera z Nginx na hoście?

Tak. Popularna konfiguracja: Nginx na hoście jako reverse proxy, który przekierowuje ruch do kontenerów Docker. Każdy kontener nasłuchuje na wewnętrznym porcie, a Nginx kieruje ruch na podstawie domeny.

Czy Docker zużywa dodatkową pamięć?

Minimalnie. Docker współdzieli jądro hosta - kontener dodaje od 10 do 50 MB narzutu, znacznie mniej niż maszyna wirtualna. Aplikacja w kontenerze zużywa tyle samo pamięci, co bez Dockera.

Docker możesz uruchomić na KVM VPS od HostValues z pełnym dostępem root.


Nadal masz pytania? Utworz ticket, a nasz zespol Ci pomoze.

Powrot do bloga