Docker i Docker Compose: diferència entre les revisions
De FFAWiki
Cap resum de modificació |
|||
| (Hi ha 8 revisions intermèdies del mateix usuari que no es mostren) | |||
| Línia 17: | Línia 17: | ||
* ''curl'': Eina per descarregar fitxers i clau de Docker des d’Internet. | * ''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. | * ''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. | * ''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 == | == 3. Afegir repositori oficial de Docker == | ||
| Línia 30: | Línia 30: | ||
sudo apt install -y docker-ce docker-ce-cli containerd.io | sudo apt install -y docker-ce docker-ce-cli containerd.io | ||
</pre> | </pre> | ||
== 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ó == | == 5. Comprovar instal·lació == | ||
| Línia 50: | Línia 55: | ||
<pre> | <pre> | ||
docker compose version | docker compose version | ||
</pre> | |||
= 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 == | |||
<pre> | |||
docker compose up -d | |||
</pre> | |||
* `-d` fa que s’executi en background. | |||
== 2. Parar tots els serveis == | |||
<pre> | |||
docker compose down | |||
</pre> | |||
== 3. Veure l’estat dels serveis == | |||
<pre> | |||
docker compose ps | |||
</pre> | |||
== 4. Veure els logs == | |||
<pre> | |||
docker compose logs | |||
docker compose logs -f # Seguir els logs en temps real | |||
</pre> | |||
== 5. Reiniciar un servei concret == | |||
<pre> | |||
docker compose restart nextcloud | |||
docker compose restart collabora | |||
</pre> | |||
== 6. Accedir a un contenidor == | |||
<pre> | |||
docker compose exec nextcloud bash | |||
docker compose exec db bash | |||
</pre> | |||
* Permet entrar dins del contenidor per fer configuracions o consultes. | |||
== 7. Actualitzar les imatges i reiniciar == | |||
<pre> | |||
docker compose pull | |||
docker compose up -d | |||
</pre> | |||
* Baixa les últimes versions de les imatges i reinicia els serveis. | |||
== 8. Veure els volums i eliminar-los == | |||
<pre> | |||
docker volume ls | |||
docker volume rm nom_volum | |||
</pre> | |||
== 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 == | |||
<pre> | |||
docker compose down | |||
</pre> | |||
* Això atura tots els contenidors i desconnecta les xarxes, però **no elimina els volums**. | |||
== 2. Editar docker-compose.yml == | |||
<pre> | |||
nano docker-compose.yml | |||
</pre> | |||
* Fes els canvis necessaris: noves variables, imatges actualitzades, ports, etc. | |||
== 3. Tornar a llençar els serveis == | |||
<pre> | |||
docker compose up -d | |||
</pre> | |||
* Si has canviat les imatges, primer és recomanable baixar-les amb: | |||
<pre> | |||
docker compose pull | |||
</pre> | |||
== 4. Comprovar l’estat == | |||
<pre> | |||
docker compose ps | |||
docker compose logs -f | |||
</pre> | |||
* 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 == | |||
<pre> | |||
docker volume ls | |||
</pre> | |||
== 2. Inspeccionar un volum concret == | |||
<pre> | |||
docker volume inspect db_data | |||
</pre> | |||
* 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: | |||
<pre> | |||
/var/lib/docker/volumes/ | |||
</pre> | |||
* Exemple: `/var/lib/docker/volumes/nextcloud_data/_data` | |||
== 4. Crear un volum manualment == | |||
<pre> | |||
docker volume create nou_volum | |||
</pre> | |||
== 5. Eliminar un volum == | |||
<pre> | |||
docker volume rm db_data | |||
</pre> | |||
⚠️ Si el volum conté dades (per exemple, la base de dades), es perdran definitivament. | |||
== 6. Eliminar contenidors i volums junts == | |||
<pre> | |||
docker compose down -v | |||
</pre> | |||
* 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 == | |||
<pre> | |||
docker run --rm -v db_data:/volume -v $(pwd):/backup busybox tar czf /backup/db_data_backup.tar.gz -C /volume . | |||
</pre> | |||
* 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 == | |||
<pre> | |||
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" | |||
</pre> | |||
* Restaura el contingut del backup al volum `db_data`. | |||
== 4. Notes importants == | |||
* Sempre atura els serveis abans de restaurar: | |||
<pre> | |||
docker compose down | |||
</pre> | |||
* Desa els fitxers `.tar.gz` en un lloc segur (altres discs o servidors). | |||
* Pots automatitzar aquestes còpies amb un cronjob. | |||
= Comandes Docker = | |||
== Purgar imatges == | |||
<pre> | |||
docker image prune | |||
</pre> | |||
== Eliminar imatges == | |||
<pre> | |||
docker rmi REPOSITORY:TAG | |||
</pre> | |||
== Mostrar imatges == | |||
<pre> | |||
docker images | |||
</pre> | |||
== Mostrar contanidors == | |||
<pre> | |||
docker ps | |||
</pre> | </pre> | ||
Revisió de 14:05, 7 set 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.
Comandes Docker
Purgar imatges
docker image prune
Eliminar imatges
docker rmi REPOSITORY:TAG
Mostrar imatges
docker images
Mostrar contanidors
docker ps
