Introducción
Docker es una plataforma de contenedorización que le permite crear, probar e implementar rápidamente aplicaciones como contenedores portátiles e independientes que pueden ejecutarse prácticamente en cualquier lugar.
Docker Compose es una herramienta que le permite definir y orquestar aplicaciones Docker de múltiples contenedores. Utilice un archivo YAML para configurar contenedores, redes y volúmenes de aplicaciones.
Compose se puede utilizar para varios propósitos. Las implementaciones de aplicaciones de host único, las pruebas automatizadas y el desarrollo local son los casos de uso más populares de Docker Compose.
Este tutorial explica cómo instalar la última versión de Docker Compose en Debian 10, Buster. También exploraremos los conceptos y comandos básicos de Docker Compose.
Prerrequisitos
Antes de continuar, asegúrese de haber cumplido los siguientes requisitos previos:
- Inicie sesión como usuario con privilegios de sudo.
- Docker instalado en Debian 10.
Si su intención es instalar Docker Compose en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instalar Docker Compose en Debian 10
El paquete de instalación de Docker Compose está disponible en los repositorios oficiales de Debian 10, pero puede que no siempre sea la última versión. El enfoque recomendado es instalar Docker Compose desde el repositorio GitHub de Docker.
En el momento de escribir este artículo, la última versión estable de Docker Compose es la versión 1.25.0
. Antes de descargar el binario de Compose, visite la página de lanzamiento del repositorio de Compose en GitHub y verifique si hay una nueva versión disponible para descargar.
Utilice los siguientes pasos para instalar la última versión de Docker Compose en Debian 10:
Descargue el binario de Docker Compose en el /usr/local/bin
con wget
o curl
:
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Utilice chmod
para hacer que Compose binary sea ejecutable:
sudo chmod +x /usr/local/bin/docker-compose
Para verificar la instalación, use el siguiente comando que imprime la versión de Compose:
docker-compose --version
La salida se verá así:
docker-compose version 1.25.0, build 0a186604
Introducción a Docker Compose
En esta sección, le mostraremos cómo configurar un entorno de desarrollo de WordPress local con Docker Compose.
Cree un directorio para el proyecto y navegue hasta él:
mkdir wordpress_app && cd wordpress_app
Abra su editor de texto y cree un archivo llamado docker-compose.yml
:
nano docker-compose.yml
Pega el siguiente contenido:
version: '3.7'
services:
db:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress
restart: always
volumes:
-./wp_data:/var/www/html
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
volumes:
db_data:
wp_data:
Explicamos el código línea por línea
La primera línea especifica la versión del archivo de composición. Hay varias versiones del formato de archivo Compose compatibles con versiones específicas de Docker.
A continuación, estamos definiendo dos servicios db
y wordpress
. Cada servicio crea un contenedor independiente cuando se ejecuta Docker Compose.
El servicio db
- La imagen se establece en
mysql:8.0
image. Si la imagen no está presente, Compose la extraerá del repositorio público de Docker Hub. La línea que comienza concommand
reemplaza el comando predeterminado. - La
restart: always
indica a Compose que reinicie el contenedor si se detiene. - El contenedor utilizará un volumen llamado
db_data
para conservar la base de datos. - Define las variables de entorno para la
mysql:8.0
.
El servicio de wordpress
- Utilice la imagen de
wordpress
- Monte el
wp_data
en el host para/var/lib/mysql
dentro del contenedor. - Reenvía el puerto
80
expuesto en el contenedor al puerto8080
en la computadora host. - Define las variables de entorno para la imagen de
wordpress
- La
depends_on
define la dependencia entre los dos servicios. En este ejemplo,db
comenzará antes quewordpress
.
Desde el directorio del proyecto, inicie la pila de WordPress ejecutando el siguiente comando:
docker-compose up
La salida debería verse así:
...
] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
db_1_77746359ac9c | 2019-12-13T20:31:22.109255Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060...
Docker Compose extrae las imágenes, inicia los contenedores y crea el wp_data
en el directorio del proyecto.
Abra su navegador y vaya a http://0.0.0.0:8080/
, verá la pantalla de instalación estándar de WordPress.
En este punto, la aplicación de WordPress está activa y puede comenzar a trabajar en ella.
Para dejar de componer, presione CTRL+C
También puede comenzar a componer en un modo separado usando la opción -d
docker-compose up -d
Para ver los contenedores Docker en ejecución, use el siguiente comando:
docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------
wordpress_app_db_1_77746359ac9c docker-entrypoint.sh --def... Up 3306/tcp, 33060/tcp
wordpress_app_wordpress_1_a428d8408817 docker-entrypoint.sh apach... Up 0.0.0.0:8080->80/tcp
Para detener los servicios cuando Compose se ejecuta en modo independiente, use:
docker-compose stop
Si desea eliminar completamente los contenedores, use la opción down
docker-compose down
Al pasar el parámetro de cambio --volumes
, también se eliminan los volúmenes de datos:
docker-compose down --volumes
Desinstalar Docker Compose
Si necesita desinstalar Docker Compose, simplemente puede eliminar el archivo binario escribiendo:
sudo rm /usr/local/bin/docker-compose
Conclusión
Para instalar Docker Compose en Debian 10, simplemente descargue el binario en un directorio en la ruta de su sistema y hágalo ejecutable.