Què és Docker Compose?
Docker Compose és una eina que permet definir i executar aplicacions multi-contenidor. Amb Docker Compose, pots utilitzar un fitxer YAML per configurar els serveis de la teva aplicació. Després, amb una sola comanda, pots crear i iniciar tots els serveis des d'aquesta configuració.
Beneficis de Docker Compose
- Simplicitat: Permet definir múltiples serveis en un sol fitxer.
- Portabilitat: Facilita la compartició de configuracions entre diferents entorns.
- Escalabilitat: Permet escalar serveis fàcilment amb una sola comanda.
- Automatització: Simplifica la gestió de dependències i la configuració de serveis.
Instal·lació de Docker Compose
Docker Compose ve preinstal·lat amb Docker Desktop per a Windows i Mac. Per a Linux, pots instal·lar-lo seguint aquests passos:
-
Descarrega la versió més recent de Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')" /usr/local/bin/docker-compose
-
Aplica permisos executables al binari:
sudo chmod +x /usr/local/bin/docker-compose
-
Verifica la instal·lació:
docker-compose --version
Fitxer docker-compose.yml
El fitxer docker-compose.yml
és el cor de Docker Compose. Aquí és on defines els serveis, les xarxes i els volums que la teva aplicació utilitzarà. A continuació, es mostra un exemple bàsic d'un fitxer docker-compose.yml
:
version: '3' services: web: image: nginx ports: - "80:80" db: image: postgres environment: POSTGRES_PASSWORD: example
Explicació del fitxer
- version: Defineix la versió del format del fitxer Compose.
- services: Defineix els serveis que componen la teva aplicació.
- web: Un servei que utilitza la imatge
nginx
i exposa el port 80. - db: Un servei que utilitza la imatge
postgres
i estableix una variable d'entornPOSTGRES_PASSWORD
.
- web: Un servei que utilitza la imatge
Comandes bàsiques de Docker Compose
docker-compose up
Aquesta comanda crea i inicia tots els serveis definits al fitxer docker-compose.yml
.
docker-compose down
Aquesta comanda atura i elimina els contenidors, xarxes i volums creats per docker-compose up
.
docker-compose ps
Mostra l'estat dels serveis definits al fitxer docker-compose.yml
.
docker-compose logs
Mostra els logs dels serveis definits al fitxer docker-compose.yml
.
Exercici pràctic
Objectiu
Crear una aplicació multi-contenidor amb un servidor web Nginx i una base de dades PostgreSQL.
Passos
-
Crea un directori per al projecte:
mkdir myapp cd myapp
-
Crea un fitxer
docker-compose.yml
amb el següent contingut:version: '3' services: web: image: nginx ports: - "80:80" db: image: postgres environment: POSTGRES_PASSWORD: example
-
Inicia els serveis:
docker-compose up
-
Verifica que els serveis estan en funcionament:
docker-compose ps
-
Atura i elimina els serveis:
docker-compose down
Conclusió
En aquesta secció, hem après què és Docker Compose, com instal·lar-lo, i com utilitzar-lo per definir i executar aplicacions multi-contenidor. Hem explorat un exemple bàsic de fitxer docker-compose.yml
i hem practicat amb les comandes bàsiques de Docker Compose. Amb aquests coneixements, estàs preparat per aprofundir en la definició de serveis més complexos i gestionar aplicacions multi-contenidor de manera eficient.
Docker: De Principiant a Avançat
Mòdul 1: Introducció a Docker
- Què és Docker?
- Instal·lant Docker
- Arquitectura de Docker
- Comandes bàsiques de Docker
- Entenent les imatges de Docker
- Creant el teu primer contenidor Docker
Mòdul 2: Treballant amb imatges Docker
- Docker Hub i Repositoris
- Construint imatges Docker
- Conceptes bàsics de Dockerfile
- Gestionant imatges Docker
- Etiquetant i pujant imatges
Mòdul 3: Contenidors Docker
- Executant contenidors
- Cicle de vida del contenidor
- Gestionant contenidors
- Xarxes a Docker
- Persistència de dades amb volums
Mòdul 4: Docker Compose
- Introducció a Docker Compose
- Definint serveis a Docker Compose
- Comandes de Docker Compose
- Aplicacions multi-contenidor
- Variables d'entorn a Docker Compose
Mòdul 5: Conceptes avançats de Docker
- Exploració profunda de xarxes Docker
- Opcions d'emmagatzematge de Docker
- Millors pràctiques de seguretat de Docker
- Optimitzant imatges Docker
- Registre i monitoratge de Docker
Mòdul 6: Docker en producció
- CI/CD amb Docker
- Orquestrant contenidors amb Docker Swarm
- Introducció a Kubernetes
- Desplegant contenidors Docker a Kubernetes
- Escalat i equilibrat de càrrega