Desplegar una pila de muestra
En este paso, aprenderá cómo desplegar una pila de muestra utilizando Docker Compose. Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker de múltiples contenedores. Con Compose, se utiliza un archivo YAML para configurar los servicios de la aplicación. Luego, con un solo comando, se crean y se inician todos los servicios a partir de la configuración.
Dado que Docker Compose no está preinstalado en el entorno de LabEx, primero debe instalarlo. Instalaremos la versión 1.29.2 de Docker Compose, que es compatible con la versión de Docker instalada.
Primero, descargue el binario de Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Este comando descarga el binario de Docker Compose del repositorio oficial de GitHub y lo guarda en /usr/local/bin/docker-compose
. Las partes $(uname -s)
y $(uname -m)
detectan automáticamente el sistema operativo y la arquitectura.
A continuación, aplique permisos de ejecución al binario:
sudo chmod +x /usr/local/bin/docker-compose
Este comando hace que el archivo descargado sea ejecutable.
Ahora, verifique la instalación comprobando la versión de Docker Compose:
docker-compose --version
Debería ver una salida similar a docker-compose version 1.29.2, build 5becea4c
.
Ahora que Docker Compose está instalado, creemos un archivo simple de Docker Compose para definir nuestra pila. Crearemos un archivo llamado docker-compose.yml
en el directorio ~/project
.
Utilice el editor nano
para crear y editar el archivo:
nano ~/project/docker-compose.yml
Pegue el siguiente contenido en el archivo docker-compose.yml
:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
app:
image: alpine:latest
command: echo "Hello from Alpine"
Este archivo docker-compose.yml
define dos servicios:
web
: Utiliza la imagen nginx:latest
y mapea el puerto 80 del host al puerto 80 del contenedor.
app
: Utiliza la imagen alpine:latest
y ejecuta un simple comando echo
.
Guarde el archivo presionando Ctrl + S
y salga del editor presionando Ctrl + X
.
Antes de desplegar la pila, descarguemos las imágenes necesarias. Si bien Docker Compose puede descargar las imágenes automáticamente durante el despliegue, descargarlas explícitamente de antemano puede ser útil en ocasiones.
Descargue la imagen nginx:latest
:
docker pull nginx:latest
Descargue la imagen alpine:latest
:
docker pull alpine:latest
Ahora, despliegue la pila utilizando el comando docker-compose up
. La bandera -d
ejecuta los contenedores en modo desatendido (en segundo plano).
Navegue al directorio ~/project
donde creó el archivo docker-compose.yml
:
cd ~/project
Luego, ejecute el comando:
docker-compose up -d
Este comando lee el archivo docker-compose.yml
y crea e inicia los servicios definidos. Debería ver una salida que indique la creación y el inicio de los servicios web
y app
.
Para verificar que los servicios estén en ejecución, puede enumerar los contenedores en ejecución:
docker ps
Debería ver dos contenedores en ejecución, uno para el servicio web
(basado en nginx
) y uno para el servicio app
(basado en alpine
).