Preparar un archivo docker-compose.yml simple
En este paso, prepararemos un archivo docker-compose.yml simple. Antes de comenzar, instalemos Docker Compose. Dado que el entorno de LabEx VM no tiene Docker Compose preinstalado, necesitamos instalarlo manualmente. Descargaremos el binario de Docker Compose y lo haremos ejecutable.
Primero, descarga el binario de Docker Compose usando curl. Descargaremos la versión 1.29.2, que es compatible con la versión instalada de Docker.
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 desde la página oficial de releases de GitHub y lo guarda en /usr/local/bin/docker-compose. Las partes $(uname -s) y $(uname -m) detectan automáticamente tu sistema operativo y arquitectura, asegurando que descargues el binario correcto.
A continuación, necesitamos hacer que el binario descargado sea ejecutable.
sudo chmod +x /usr/local/bin/docker-compose
Este comando agrega permisos de ejecución al archivo docker-compose, permitiéndote ejecutarlo como un comando.
Ahora, verifiquemos que Docker Compose esté instalado correctamente comprobando su versión.
docker-compose --version
Deberías ver una salida similar a docker-compose version 1.29.2, build 5becea4c. Esto confirma que Docker Compose está instalado y listo para usar.
Ahora, creemos un archivo docker-compose.yml simple en tu directorio ~/project. Este archivo definirá un único servicio usando la imagen nginx.
nano ~/project/docker-compose.yml
Este comando abre el editor de texto nano para crear y editar el archivo docker-compose.yml. Pega el siguiente contenido en el editor:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Analicemos este archivo docker-compose.yml:
version: '3.8' especifica la versión del formato del archivo Docker Compose.
services: define los servicios (contenedores) que deseas ejecutar.
web: es el nombre de nuestro servicio. Puedes elegir cualquier nombre que prefieras.
image: nginx:latest especifica la imagen de Docker a usar para este servicio. En este caso, estamos usando la última versión de la imagen oficial de Nginx.
ports: mapea puertos entre la máquina host y el contenedor. "80:80" mapea el puerto 80 en el host al puerto 80 en el contenedor. Esto significa que puedes acceder al servidor web Nginx que se ejecuta dentro del contenedor visitando http://localhost en tu navegador web (o la dirección IP de la VM).
Guarda el archivo presionando Ctrl + O, luego presiona Enter, y sal del editor presionando Ctrl + X.
Ahora has creado exitosamente un archivo docker-compose.yml simple que define un servicio web usando la imagen de Nginx. En los siguientes pasos, usaremos este archivo para crear y gestionar contenedores.