Docker i Docker Compose
De FFAWiki
La revisió el 14:43, 23 ago 2025 per Mayola (discussió | contribucions) (→Comandes útils de Docker Compose)
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.
