Introducció
En aquesta secció, explorarem els conceptes fonamentals dels contenidors i Docker, una de les tecnologies més populars per a la creació, desplegament i gestió de microserveis. Aprendrem com Docker facilita la creació de contenidors, que són unitats lleugeres i portàtils que encapsulen una aplicació i les seves dependències.
Conceptes Bàsics de Contenidors
Què és un Contenidor?
Un contenidor és una unitat estàndard de programari que empaqueta el codi i totes les seves dependències perquè l'aplicació s'executi de manera ràpida i fiable d'un entorn informàtic a un altre.
Característiques dels Contenidors
- Aïllament: Cada contenidor s'executa de manera aïllada dels altres, proporcionant un entorn segur i independent.
- Portabilitat: Els contenidors poden executar-se en qualsevol sistema que tingui un motor de contenidors compatible, com Docker.
- Eficiència: Els contenidors comparteixen el sistema operatiu del host, la qual cosa els fa més lleugers que les màquines virtuals.
Introducció a Docker
Què és Docker?
Docker és una plataforma de codi obert que automatitza la implementació d'aplicacions dins de contenidors de programari. Proporciona una manera senzilla de crear, desplegar i executar aplicacions en contenidors.
Components Clau de Docker
- Docker Engine: El motor de Docker és el component principal que permet la creació i execució de contenidors.
- Docker Images: Una imatge de Docker és una plantilla llegible que conté tot el necessari per executar una aplicació, incloent el codi, les biblioteques i les eines de configuració.
- Docker Containers: Un contenidor és una instància en execució d'una imatge de Docker.
- Docker Hub: Un registre públic on es poden trobar i compartir imatges de Docker.
Instal·lació de Docker
Requisits del Sistema
- Sistema Operatiu: Docker és compatible amb Linux, Windows i macOS.
- Memòria: Es recomana tenir almenys 4 GB de RAM.
- Espai en Disc: Es recomana tenir almenys 10 GB d'espai lliure en disc.
Passos d'Instal·lació
-
Linux:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker
-
Windows:
- Descarrega i instal·la Docker Desktop des del lloc web oficial de Docker.
- Segueix les instruccions de la instal·lació i reinicia el sistema si és necessari.
-
macOS:
- Descarrega i instal·la Docker Desktop des del lloc web oficial de Docker.
- Segueix les instruccions de la instal·lació i reinicia el sistema si és necessari.
Creació i Execució de Contenidors
Crear una Imatge de Docker
-
Dockerfile: Un Dockerfile és un fitxer de text que conté les instruccions per crear una imatge de Docker.
# Usa una imatge base oficial de Node.js FROM node:14 # Estableix el directori de treball dins del contenidor WORKDIR /app # Copia els fitxers de l'aplicació al directori de treball COPY . . # Instal·la les dependències de l'aplicació RUN npm install # Exposa el port en què l'aplicació s'executarà EXPOSE 3000 # Comanda per executar l'aplicació CMD ["node", "app.js"]
-
Construir la Imatge:
docker build -t my-node-app .
Executar un Contenidor
-
Executar el Contenidor:
docker run -p 3000:3000 my-node-app
-
Verificar l'Execució:
- Obre un navegador web i navega a
http://localhost:3000
per veure l'aplicació en execució.
- Obre un navegador web i navega a
Gestió de Contenidors
Comandes Bàsiques de Docker
-
Llistar Contenidors:
docker ps
-
Aturar un Contenidor:
docker stop <container_id>
-
Eliminar un Contenidor:
docker rm <container_id>
-
Llistar Imatges:
docker images
-
Eliminar una Imatge:
docker rmi <image_id>
Exercici Pràctic
Objectiu
Crear i executar un contenidor Docker per a una aplicació web simple.
Passos
-
Crea un fitxer
Dockerfile
amb el següent contingut:FROM python:3.8-slim WORKDIR /app COPY . . RUN pip install flask EXPOSE 5000 CMD ["python", "app.py"]
-
Crea un fitxer
app.py
amb el següent contingut:from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, Docker!' if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
-
Construeix la Imatge:
docker build -t my-flask-app .
-
Executa el Contenidor:
docker run -p 5000:5000 my-flask-app
-
Verifica l'Execució:
- Obre un navegador web i navega a
http://localhost:5000
per veure l'aplicació en execució.
- Obre un navegador web i navega a
Resum
En aquesta secció, hem après els conceptes bàsics dels contenidors i Docker, incloent la seva instal·lació, creació d'imatges, execució de contenidors i gestió bàsica. Docker és una eina poderosa que facilita el desplegament i la gestió de microserveis, proporcionant un entorn consistent i portàtil per a les aplicacions.
Curs de Microserveis
Mòdul 1: Introducció als Microserveis
- Conceptes Bàsics de Microserveis
- Avantatges i Desavantatges dels Microserveis
- Comparació amb Arquitectura Monolítica
Mòdul 2: Disseny de Microserveis
- Principis de Disseny de Microserveis
- Descomposició d'Aplicacions Monolítiques
- Definició de Bounded Contexts