05.09.2025. Raspberry Pi 62

Raspberry Pi i Docker: Kontejnerizacija na Malom Računalu

Naučite kako instalirati i koristiti Docker na Raspberry Pi-u. Pokrenite više aplikacija u kontejnerima bez komplikacija.
Raspberry Pi i Docker: Kontejnerizacija na Malom Računalu

Docker je revolucionirao način na koji razvijamo i pokre​ćemo aplikacije. Umjesto da instalirate sve biblioteke i ovisnosti direktno na sustav, Docker omogućuje da svaka aplikacija radi u svom izoliranom kontejneru. To znači - nema više sukoba verzija, lakše upravljanje, i mogućnost pokretanja desetaka servisa na jednom Raspberry Pi-u!

Što je Docker?

Docker je platforma za kontejnerizaciju koja omogućuje pakiranje aplikacija zajedno sa svim ovisnostima u lagane, prenosive kontejnere. Zamislite kontejner kao mali, samostalan operativni sustav koji sadrži samo ono što vaša aplikacija treba.

Prednosti Dockera na Raspberry Pi-u

  • Izolacija: Svaka aplikacija radi u svom okruženju
  • Jednostavnost: Instalacija složenih aplikacija svodi se na jednu naredbu
  • Portabilnost: Kontejneri rade jednako na svim platformama
  • Sigurnost: Kontejneri su izolirani od glavnog sustava
  • Efikasnost resursa: Dijele kernel OS-a, troše manje memorije od virtualnih mašina

Instalacija Dockera

Prvo osigurajte da imate najnoviju verziju Raspberry Pi OS-a:

sudo apt update
sudo apt upgrade -y

Automatska Instalacija (Preporučeno)

Docker ima jednostavnu instalacijsku skriptu:

# Preuzmite i pokrenite instalacijsku skriptu
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Dodajte trenutnog korisnika u docker grupu (ne trebaćete sudo)
sudo usermod -aG docker $USER

# Omogućite Docker da se pokreće automatski
sudo systemctl enable docker

# Restartirajte terminal ili se ponovno prijavite
newgrp docker

Provjera Instalacije

# Provjerite verziju
docker --version

# Pokrenite test kontejner
docker run hello-world

Ako vidite poruku "Hello from Docker!", uspješno ste instalirali Docker!

Osnovne Docker Naredbe

Najvažnije naredbe koje trebate znati:

# Preuzimanje slike (image)
docker pull nginx

# Prikaz svih slika
docker images

# Pokretanje kontejnera
docker run -d -p 8080:80 --name moj-nginx nginx

# Prikaz pokrenutih kontejnera
docker ps

# Prikaz svih kontejnera (uključujući zaustavljene)
docker ps -a

# Zaustavljanje kontejnera
docker stop moj-nginx

# Pokretanje zaustavljen og kontejnera
docker start moj-nginx

# Brisanje kontejnera
docker rm moj-nginx

# Brisanje slike
docker rmi nginx

# Pregled logova kontejnera
docker logs moj-nginx

# Pristup shell-u unutar kontejnera
docker exec -it moj-nginx /bin/bash

Praktičan Primjer: Nginx Web Server

Pokrenimo jednostavan web server:

# Stvorite direktorij za web stranicu
mkdir ~/my-website
cd ~/my-website
echo "Dobrodošli na moj Raspberry Pi!" > index.html

# Pokrenite Nginx s vašom stranicom
docker run -d \
  --name web-server \
  -p 8080:80 \
  -v ~/my-website:/usr/share/nginx/html:ro \
  nginx:alpine

Sada možete pristupiti stranici na http://raspberrypi.local:8080

Docker Compose: Upravljanje Više Kontejnera

Docker Compose omogućuje definiranje višekontejnerskih aplikacija u jednoj datoteci.

Instalacija Docker Compose

sudo apt install docker-compose -y

Primjer: WordPress s Bazom Podataka

Stvorite docker-compose.yml:

version: '3'

services:
  db:
    image: mariadb:10
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    restart: always

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress_data:/var/www/html
    restart: always

volumes:
  db_data:
  wordpress_data:

Pokrenite stack:

docker-compose up -d

WordPress će biti dostupan na http://raspberrypi.local:8080

Korisni Kontejneri za Raspberry Pi

1. Pi-hole - Bloker Reklama za Cijelu Mrežu

docker run -d \
  --name pihole \
  -p 53:53/tcp -p 53:53/udp \
  -p 80:80 \
  -e TZ="Europe/Zagreb" \
  -e WEBPASSWORD="mojalozinka" \
  -v pihole_data:/etc/pihole \
  -v dnsmasq_data:/etc/dnsmasq.d \
  --restart=unless-stopped \
  pihole/pihole:latest

2. Portainer - GUI za Upravljanje Dockerom

docker run -d \
  -p 9000:9000 \
  --name portainer \
  --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

Pristup: http://raspberrypi.local:9000

3. Grafana - Vizualizacija Podataka

docker run -d \
  -p 3000:3000 \
  --name grafana \
  -v grafana_data:/var/lib/grafana \
  --restart unless-stopped \
  grafana/grafana:latest

Održavanje i Čišćenje

Docker može zauzeti puno prostora. Redovno čišćenje je važno:

# Ukloni sve zaustavljene kontejnere
docker container prune

# Ukloni nekorištene slike
docker image prune

# Ukloni nekorištene volumene
docker volume prune

# Ukupno čišćenje (oprezno!)
docker system prune -a

# Provjera prostora
docker system df

Najbolje Prakse

  • Uvijek koristite specifične verzije slika (npr. nginx:1.21 umjesto nginx:latest)
  • Koristite volume-e za podatke koji trebaju ostati nakon brisanja kontejnera
  • Postavite restart policy za kontejnere koji trebaju raditi stalno
  • Koristite docker-compose za složenije aplikacije
  • Redovno ažurirajte slike: docker-compose pull && docker-compose up -d

Performanse na Raspberry Pi-u

Docker radi odlično na Raspberry Pi-u, ali postoje neka ograničenja:

  • Koristite alpine verzije slika gdje god je moguće (manje, brže)
  • Raspberry Pi 4 s 4GB+ RAM-a je preporučen za više kontejnera
  • Koristite SSD umjesto microSD kartice za bolje performanse I/O
  • Pazite na ARM arhitekturu - ne sve slike rade na Pi-u

Zaključak

Docker pretvara Raspberry Pi u moćnu platformu za self-hosting. Sada možete pokrenuti više servisa bez brige o sukobima ovisnosti. Od web servera do home automation sustava - sve je moguće s nekoliko naredbi!

U sljedećim člancima pokazat ću konkretne projekte koje možete pokrenuti na vašem Dockeriziranom Raspberry Pi-u. Stay tuned!

Česta Pitanja

Može li Raspberry Pi 3 pokretati Docker?
Da, ali je Pi 4 s više RAM-a preporučen za više kontejnera. Pi 3 radi odlično za 3-5 laganih kontejnera.

Hoće li Docker usporiti moj Pi?
Ne, Docker kontejneri dijele kernel s OS-om i vrlo su efikasni. Često su brži od "native" instalacija jer su optimizirani.

Gdje se spremaju Docker podaci?
Po defaultu u /var/lib/docker. Volume-i omogućuju trajno spremanje podataka neovisno o kontejnerima.

Podijeli članak: