Raspberry Pi eta Docker etxeko laborategia: instalazioa, kopiak eta berreskurapena

64 biteko Raspberry Pirako gida praktikoa: prestatu ostalaria, instalatu Docker, martxan jarri web orri lokala eta egiaztatu babeskopia datu garrantzitsuak gehitu aurretik.

Laburbilduz: Hasi onartutako 64 biteko Raspberry Pi OS batekin, SSH funtzionalarekin eta Compose zerbitzu txiki bakarrarekin. Mantendu web ataka localhosten, sartu SSH tunel baten bidez eta egiaztatu babeskopia datu garrantzitsuak gehitu aurretik. Edukiontzia martxan egotea hasiera da, ez berreskuragarria dela frogatzea.

Adibidea nahita da txikia: nginxek zerbitzatutako web orri estatikoa. Ostalaria, edukiontzia, sarea eta datuak bereizten ikasteko balio du, datu-base, pasahitz-kudeatzaile edo administrazio-panel publikorik jarri gabe. Komandoak proposatutako adibideak dira, ez AYXWORKSek hardware-konfigurazio zehatz hori probatu izanaren ebidentzia.

1. Prestatu ostalari garbia eta esparru argia

Erabili aurreikusitako kargarako Raspberry Pi egokia, modeloarekin bateragarriak diren elikadura eta hoztea, biltegiratze fidagarria eta sare-konexioa. Onartutako 64 biteko sistema duen Pi 4 edo Pi 5 abiapuntu zentzuzkoa da adibide honetarako; ez du gero gehituko dituzun zerbitzu guztientzako ahalmena bermatzen. Begiratu plakaren dokumentazioa biltegiratzeari eta abioari buruz.

Erabili Raspberry Pi Imager eta urruneko sarbidearen jarraibide ofizialak zure kontua eta SSH konfiguratzeko. Adibideko erabiltzailea labuser da, eta ostalari-izena lab; ordezkatu zure benetako balioekin. Egiaztatu SSH etxeko sare fidagarrian aplikazioak instalatu aurretik. .local izena ebazten ez bada, bilatu helbidea routerrean.

Ez berridatzi lehendik dagoen zerbitzariaren sistema-irudia gida jarraitzeko. Irudia grabatzeak hautatutako biltegiratzea ezabatzen du. Erabili ordezko edo babestutako euskarria, eta egiaztatu helburua. Docker edo zerbitzuak badaude, aztertu oraingo instalazioa komando hauekin ordezkatu beharrean.

2. Egiaztatu sistema eragilea eta arkitektura

Pi gailuan, kontsultatu:

cat /etc/os-release
dpkg --print-architecture
uname -m

Ondoko instalazioa Debian bertsio onartu batean oinarritutako 64 biteko Raspberry Pi OSrako da. Egiaztatu dpkgk arm64 dioela eta begiratu benetako Debian kode-izena. Kontsultatutako Docker gidak Bookworm eta Trixie onartutako bertsioen artean ditu. 64 biteko kernelak bakarrik ez du frogatzen erabiltzaile-espazioa ere 64 bitekoa denik.

32 biteko sistema, onartu gabeko bertsioa edo beste banaketa baduzu, gelditu eta erabili dagokion dokumentazio ofiziala. Ez jarri ausazko kode-izen bat biltegiak sistema onar dezan.

3. Instalatu Docker onartutako pakete-biltegitik

Ostalari garbi eta bateragarrian, erabili Dockerren Debian biltegiaren prozedura. Berrikusi pakete-kudeatzailearen galderak eta gelditu erroreetan. Blokeak biltegi-fitxategi bat idazten du; ez gainidatzi lehendik dagoen konfigurazio pertsonalizatua aztertu gabe.

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run --rm hello-world
sudo docker compose version

Espero diren egiaztapenak hello-world arrakastatsua eta Compose bertsio baten irteera dira, ez hemen asmatutako bertsio zehatz bat. Adibideak sudo mantentzen du Docker administratzeko. Dokumentazioak dioenez, docker taldeko kide izateak root mailako pribilegioak ematen ditu; ez da erosotasun kaltegabe hutsa.

4. Sortu Compose proiektu isolatu bat

Ondoko blokeak ez du ~/homelab/web gainidazten jada badago. Adibideko orria eta Compose fitxategia sortzen ditu. Azpi-shellaren errore-kontrolak gelditu egiten du direktorioa badago edo komando batek huts egiten badu.

(
  set -eu
  test ! -e "$HOME/homelab/web"
  mkdir -p "$HOME/homelab/web/site"
  cd "$HOME/homelab/web"
  printf '%s\n' '<!doctype html><title>Home lab</title><h1>Home lab is running</h1>' > site/index.html
  cat > compose.yaml <<'YAML'
name: lab-web
services:
  web:
    image: nginx:stable-alpine
    ports:
      - "127.0.0.1:8080:80"
    volumes:
      - ./site:/usr/share/nginx/html:ro
    restart: unless-stopped
    logging:
      driver: local
YAML
)

Irudiak web zerbitzaria ematen du; orria ostalariaren site direktorioan dago, edukiontzian irakurtzeko soilik muntatuta. Atakak Piaren begizta lokaleko helbidean bakarrik entzuten du. Nahita da: ez duzu weba LANera edo internetera ireki. Tokiko erregistro-kontrolatzaileak logen txandaketa mugatua eskaintzen du, lehenetsitako erregistro mugagabeak hazten utzi beharrean.

Irudi-etiketa hasteko erosoa da, baina ez bertsio aldaezina. Probatu ondoren, jaso ebatzitako digesta eta finkatu errepikatu beharreko instalazioan. Hilabete batzuk geroago etiketa bera deskargatzeak ez du software bera bermatzen.

5. Abiarazi zerbitzua eta egiaztatu benetako orria

Exekutatu proiektu berrian, eta aztertu hutsak aurrera jarraitu aurretik:

cd "$HOME/homelab/web" || exit 1
sudo docker compose config --quiet
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps
curl --fail http://127.0.0.1:8080/

Konfigurazioak errore gabe baliozkotu behar du, zerbitzuak martxan agertu eta curlek adibideko HTMLa itzuli. «Running» egoerak bakarrik ez du aplikazioa ondo dabilenik frogatzen. Curlek huts egiten badu, begiratu erregistroak, ataka eta muntatutako orria software gehiago gehitu aurretik.

6. Sartu eramangarritik ataka publikatu gabe

Eramangarrian, ireki SSH tunela lehen konfiguratutako kontuarekin eta izenarekin:

ssh -N -l labuser -L 127.0.0.1:8080:127.0.0.1:8080 lab.local

Utzi terminala irekita eta bisitatu http://127.0.0.1:8080/ eramangarriaren nabigatzailean. SSH komandoak nahita jarraitzen du martxan shellik erakutsi gabe. Amaitzean, gelditu Ctrl+C bidez. Eramangarriko 8080 ataka okupatuta badago, aldatu birbidalketako lehen tokiko ataka eta erabili hori nabigatzailean.

Ez gehitu routerreko ataka-birbidalketarik eta ez erakutsi Docker socketa. Dockerrek argitaratutako atakek ostalariaren suebaki-arauekin elkarreragin dezakete; suebakia izateak ez ditu automatikoki edukiontzi guztiak pribatu egiten. Etxetik kanpoko sarbideak aparteko diseinu berrikusia behar du, ez administrazio-panel irekia.

7. Aztertu erregistroak, biltegiratzea eta probatutako irudia

cd "$HOME/homelab/web" || exit 1
sudo docker compose ps
sudo docker compose logs --tail=50 web
df -h
sudo docker image inspect nginx:stable-alpine --format '{{index .RepoDigests 0}}'

Erabili Compose erregistroak aplikazio-erroreetarako eta disko-erabilera ostalariaren ahalmena ikusteko. Azken komandoak irudiaren erreferentzia ebatzia ematen du; gorde Composerekin probatutako bertsioa finkatzean. Egiaztatu erregistroak partekatu aurretik, benetako zerbitzuek datu pribatuak izan baititzakete.

Ez abiarazi zerbitzu-pila handia lehen orria badabilelako. Gehitu zerbitzu bakarra aldi bakoitzean eta egiaztatu CPU arkitektura, memoria, datu iraunkorrak, kredentzialak, sarea eta berreskurapena. Edukiontzi batek ez du software bateraezina automatikoki ARMen exekutagarri bihurtzen.

8. Sortu eta egiaztatu adibidearen babeskopia

Adibide estatiko honetan, proiektu-direktorioak datuak eta konfigurazioa biltzen ditu. Fitxategiak aldi berean editatzen ez direla, exekutatu:

(
  set -eu
  umask 077
  mkdir -p "$HOME/backups"
  backup="$HOME/backups/lab-web-$(date +%Y%m%d-%H%M%S).tar.gz"
  test ! -e "$backup"
  tar -C "$HOME/homelab" -czf "$backup" web
  gzip -t "$backup"
  sha256sum "$backup"
  restore=$(mktemp -d "$HOME/lab-restore.XXXXXX")
  tar -xzf "$backup" -C "$restore"
  cmp "$HOME/homelab/web/site/index.html" "$restore/web/site/index.html"
  cmp "$HOME/homelab/web/compose.yaml" "$restore/web/compose.yaml"
  printf 'Backup: %s\nRestored copy: %s\n' "$backup" "$restore"
)

Artxiboa egiaztatu, aldi baterako direktorio berri batean atera eta jatorrizko fitxategiekin konparatzen da. cmp komandoek ez dute ezer esaten bat datozenean; hutsak blokea gelditzen du. Fitxategien berreskurapena frogatzen du, ez martxan dagoen aplikazioaren hondamendi-berreskurapen osoa. Mantendu ateratako kopia aztertu arte.

Kopiatu artxiboa beste gailu edo babeskopia-helburu batera eta babestu. Pi berean bakarrik dagoen kopia biltegiratze berarekin galtzen da. Benetako datu-baseek aplikazioak onartutako kopia koherentea edo esportazioa behar dute; martxan dagoen direktorioa kopiatzea ez da automatikoki balioduna. Docker bolumenek ere plan bat behar dute, bolumenen dokumentazioak azaltzen duen bezala.

9. Eguneratu nahita eta jakin nola gelditu

Eguneratu aurretik, gorde uneko Compose, probatutako irudi-erreferentzia eta datuen kopia. Irakurri bertsio-oharrak, deskargatu nahi duzun irudia, birsortu zerbitzua eta berriz egiaztatu orria. Eskema-migrazioak badaude, aurreko irudira itzultzeak ez ditu zertan datuak lehengoratu; jarraitu aplikazioaren berreskurapen-prozesuari.

Adibidea gelditu eta haren Compose edukiontziak eta sarea kentzeko:

cd "$HOME/homelab/web" || exit 1
sudo docker compose down

Horrek ez du ostalaritik muntatutako site direktorioa ezabatzen. Ez gehitu -v arinkeriaz beste proiektuetan eta ez erabili bolumenak garbitzeko komandoak datuak non dauden ulertzearen ordez. Adibidea berriz sor dezakezu gordetako Compose fitxategiarekin eta up -d erabilita.

Oinarrizkoa dabilenean gehitu beharrekoa

Ordezkaezina den informazioa gorde aurretik, autentifikazioa, TLS, kanpoko kopiak, monitorizazioa eta eguneratze-politika behar dira. Egokitu benetako aplikaziora. Utzi sekretuak bertsio-kontroletik kanpo eta mugatu Docker edo SSH administratu dezaketen pertsonak.

Lehen mugarria apala da: azaldu orria non dagoen, nola sartzen den, zein irudik zerbitzatzen duen, edukiontzia kentzean zer mantentzen den eta kopia nola egiaztatu den. Horrek gehiago balio du berreskurapena inoiz probatu ez zaien zerbitzuz betetako panelak baino.

Iturriak eta baliozkotze-mugak

Lotutako Raspberry Pi eta Docker dokumentazioa 2026ko urriaren 14an berrikusi da. Hautatutako ostalariaren ahalmena, irudi erabilgarriak eta instalazio-bateragarritasuna egiaztatu behar dira oraindik. Gidak frogatu gabeko lehen pertsonako kontakizunak tutorial argi batekin ordezkatzen ditu; ez du AYXWORKSek egindako hardware-instalaziorik edo fidagarritasun-hobekuntza neurturik aldarrikatzen.