Introducció
Les variables d'entorn són una manera poderosa de configurar aplicacions sense haver de modificar el codi font. En Docker Compose, les variables d'entorn es poden utilitzar per definir configuracions que poden variar entre diferents entorns (per exemple, desenvolupament, proves, producció). Aquest mòdul t'ensenyarà com utilitzar variables d'entorn en els teus fitxers docker-compose.yml.
Conceptes Clau
- Variables d'entorn en el fitxer
docker-compose.yml: Com definir variables directament en el fitxer. - Fitxers
.env: Com utilitzar fitxers d'entorn per carregar variables. - Passar variables d'entorn des del sistema host: Com passar variables d'entorn des del sistema operatiu host al contenidor.
Definint Variables d'Entorn en el Fitxer docker-compose.yml
Pots definir variables d'entorn directament en el fitxer docker-compose.yml utilitzant la clau environment. Aquí tens un exemple:
Explicació del Codi
version: '3.8': Especifica la versió de Docker Compose.services: Defineix els serveis que es desplegaran.web: Nom del servei.image: nginx: Utilitza la imatgenginx.environment: Defineix les variables d'entornNGINX_HOSTiNGINX_PORT.
Utilitzant Fitxers .env
Els fitxers .env són una manera convenient de gestionar variables d'entorn. Pots crear un fitxer .env al mateix directori que el teu fitxer docker-compose.yml i definir les variables d'entorn allà.
Exemple de Fitxer .env
Exemple de Fitxer docker-compose.yml Utilitzant .env
Explicació del Codi
- Les variables
NGINX_HOSTiNGINX_PORTes carregaran automàticament des del fitxer.env.
Passar Variables d'Entorn des del Sistema Host
També pots passar variables d'entorn des del sistema operatiu host al contenidor. Això és útil quan vols que les variables d'entorn siguin dinàmiques.
Exemple
Exemple de Fitxer docker-compose.yml
version: '3.8'
services:
web:
image: nginx
environment:
- NGINX_HOST=${NGINX_HOST}
- NGINX_PORT=${NGINX_PORT}Explicació del Codi
- Les variables
NGINX_HOSTiNGINX_PORTes substitueixen pels valors definits en el sistema host.
Exercicis Pràctics
Exercici 1: Definir Variables d'Entorn en el Fitxer docker-compose.yml
- Crea un fitxer
docker-compose.ymlque defineixi un serveiwebutilitzant la imatgenginx. - Defineix les variables d'entorn
NGINX_HOSTiNGINX_PORTdirectament en el fitxerdocker-compose.yml.
Solució
Exercici 2: Utilitzar un Fitxer .env
- Crea un fitxer
.envamb les variablesNGINX_HOSTiNGINX_PORT. - Modifica el fitxer
docker-compose.ymlper utilitzar aquestes variables.
Solució
Fitxer .env
Fitxer docker-compose.yml
Exercici 3: Passar Variables d'Entorn des del Sistema Host
- Defineix les variables d'entorn
NGINX_HOSTiNGINX_PORTen el sistema host. - Modifica el fitxer
docker-compose.ymlper utilitzar aquestes variables.
Solució
Comandes del Sistema Host
Fitxer docker-compose.yml
version: '3.8'
services:
web:
image: nginx
environment:
- NGINX_HOST=${NGINX_HOST}
- NGINX_PORT=${NGINX_PORT}Conclusió
Les variables d'entorn són una eina essencial per configurar aplicacions de manera flexible i segura. En aquest mòdul, has après com definir variables d'entorn directament en el fitxer docker-compose.yml, com utilitzar fitxers .env i com passar variables d'entorn des del sistema host. Aquestes tècniques et permetran gestionar configuracions de manera més eficient i adaptable a diferents entorns.
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
