Docker i Docker Compose: diferència entre les revisions

De FFAWiki
Línia 59: Línia 59:
= Comandes útils de Docker Compose =
= Comandes útils de Docker Compose =


#Si l'arxiu .yml te un nom diferent a docker-compose.yml has de posar el paràmetre -f <nom_document.yml>
* Si l'arxiu .yml te un nom diferent a docker-compose.yml has de posar el paràmetre -f <nom_document.yml>


== 1. Llençar tots els serveis ==
== 1. Llençar tots els serveis ==

Revisió del 14:44, 23 ago 2025

Instal·lació de Docker i Docker Compose a Ubuntu 24.04 LTS

1. Actualitzar el sistema

sudo apt update && sudo apt upgrade -y

2. Instal·lar dependències

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common lsb-release

Que pot fer de cada paquet?

  • apt-transport-https: Necessari perquè `apt` pugui descarregar paquets via HTTPS, ja que el repositori oficial de Docker utilitza HTTPS.
  • ca-certificates: Proporciona certificats de confiança per validar connexions HTTPS segures.
  • curl: Eina per descarregar fitxers i clau de Docker des d’Internet.
  • software-properties-common: Inclou `add-apt-repository`, necessari per afegir repositoris de tercers.
  • lsb-release: Permet obtenir informació de la versió d’Ubuntu per configurar correctament el repositori Docker. (s'utilitza per la comanda que ve després, dins l'eco, es pot des instal·lar després d'haver instal·lat docker correctament)

3. Afegir repositori oficial de Docker

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. Instal·lar Docker

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

Explicació de cada paquet

  • docker-ce: Docker Community Edition, el motor principal que executa contenidors.
  • docker-ce-cli: Eina de línia de comandes per interactuar amb Docker.
  • containerd.io: Runtime que gestiona els contenidors a nivell de sistema.

5. Comprovar instal·lació

docker --version

6. Afegir usuari al grup docker

sudo usermod -aG docker $USER

(Tanca la sessió i torna a entrar per aplicar els canvis.)

7. Instal·lar Docker Compose

sudo apt install docker-compose-plugin

8. Comprovar Docker Compose

docker compose version

Comandes útils de Docker Compose

  • Si l'arxiu .yml te un nom diferent a docker-compose.yml has de posar el paràmetre -f <nom_document.yml>

1. Llençar tots els serveis

docker compose up -d
  • `-d` fa que s’executi en background.

2. Parar tots els serveis

docker compose down

3. Veure l’estat dels serveis

docker compose ps

4. Veure els logs

docker compose logs
docker compose logs -f  # Seguir els logs en temps real

5. Reiniciar un servei concret

docker compose restart nextcloud
docker compose restart collabora

6. Accedir a un contenidor

docker compose exec nextcloud bash
docker compose exec db bash
  • Permet entrar dins del contenidor per fer configuracions o consultes.

7. Actualitzar les imatges i reiniciar

docker compose pull
docker compose up -d
  • Baixa les últimes versions de les imatges i reinicia els serveis.

8. Veure els volums i eliminar-los

docker volume ls
docker volume rm nom_volum

Notes

  • Sempre és millor parar serveis amb `docker compose down` abans de modificar `docker-compose.yml`.
  • Amb `docker compose logs -f` pots depurar errors de Nextcloud o Collabora en temps real.

Actualitzar Docker Compose

1. Parar els serveis

docker compose down
  • Això atura tots els contenidors i desconnecta les xarxes, però **no elimina els volums**.

2. Editar docker-compose.yml

nano docker-compose.yml
  • Fes els canvis necessaris: noves variables, imatges actualitzades, ports, etc.

3. Tornar a llençar els serveis

docker compose up -d
  • Si has canviat les imatges, primer és recomanable baixar-les amb:
docker compose pull

4. Comprovar l’estat

docker compose ps
docker compose logs -f
  • Això permet assegurar-te que els serveis arranquen correctament amb la nova configuració.

Notes

  • Els volums (`nextcloud_data`, `db_data`) **no es perden** si només reinicies els serveis.
  • Si afegeixes un nou servei, Docker Compose crearà el contenidor corresponent automàticament.
  • Si canvies ports o noms de contenidors, assegura’t que no hi hagi conflictes amb altres serveis en execució.

Gestió de volums a Docker Compose

Els volums són espais de dades persistents que viuen fora del cicle de vida dels contenidors. Això permet que la informació de Nextcloud i MariaDB no es perdi encara que els contenidors es reiniciïn o s’actualitzin.

1. Veure els volums existents

docker volume ls

2. Inspeccionar un volum concret

docker volume inspect db_data
  • Mostra on està ubicat físicament al host i quins contenidors el fan servir.

3. Entrar dins un volum

Els volums es troben al directori:

/var/lib/docker/volumes/
  • Exemple: `/var/lib/docker/volumes/nextcloud_data/_data`

4. Crear un volum manualment

docker volume create nou_volum

5. Eliminar un volum

docker volume rm db_data

⚠️ Si el volum conté dades (per exemple, la base de dades), es perdran definitivament.

6. Eliminar contenidors i volums junts

docker compose down -v
  • Aquesta ordre atura els serveis i esborra també els volums.
  • ⚠️ Destrueix totes les dades de Nextcloud i MariaDB.

Notes

  • Els volums `db_data` i `nextcloud_data` són els que guarden la informació crítica.
  • Mai facis servir `down -v` en producció si no vols perdre dades.
  • Pots fer còpies de seguretat dels volums copiant els fitxers del directori `_data`.

Còpies de seguretat i restauració de volums Docker

Els volums permeten preservar i exportar dades dels serveis (per exemple, Nextcloud i MariaDB).

1. Fer una còpia de seguretat d’un volum

docker run --rm -v db_data:/volume -v $(pwd):/backup busybox tar czf /backup/db_data_backup.tar.gz -C /volume .
  • Crea un fitxer `db_data_backup.tar.gz` al directori actual amb tot el contingut del volum `db_data`.

2. Restaurar un volum des d’una còpia

docker run --rm -v db_data:/volume -v $(pwd):/backup busybox sh -c "cd /volume && tar xzf /backup/db_data_backup.tar.gz --strip 1"
  • Restaura el contingut del backup al volum `db_data`.

4. Notes importants

  • Sempre atura els serveis abans de restaurar:
docker compose down
  • Desa els fitxers `.tar.gz` en un lloc segur (altres discs o servidors).
  • Pots automatitzar aquestes còpies amb un cronjob.