Simplifica el uso de contenedores con Docker Compose

04/08/2019 | Docker, PHP | 0 comentarios

Aprende a utilizar docker de forma sencilla con Docker Compose, crea y administra de forma sencilla contenedores para tener tus ambientes de desarrollo.

Descargar archivos


Docker Compose

Compose es una herramienta de Docker para crear y ejecutar multiples contenedores de manera sencilla, para ello se utiliza un archivo llamado docker-compose.yml que contiene todos los parámetros de configuración para crear los contenedores.

Los contenedores se crean con el comando:

docker-compose up -d

Los contenedores se manejas con los comandos:


docker-compose start    # Iniciar los contenedores
docker-compose stop     # Detener los contenedores
docker-compose down     # Detener y eliminar los contenedores

El archivo docker-compose.yml

El archivo docker-compose.yml se escribe en formato YAML y define el conjunto de reglas y parámetros para la creación de los contenedores. Las reglas mas importantes son las siguientes:

  • version: define la versión de Compose a utilizar y depende de la versión del motor de Docker instalado, la versión estándar es la 3.
  • services: los servicios se refieren a la configuración de los contenedores. Los parámetros disponibles se pueden encontrar en https://hub.docker.com/.
  • volumes: los volúmenes son los directorios compartidos entre el host y el contenedor o entre contenedores. Permite definir los directorios públicos del contenedor.
  • ports: permite exponer puestos y reglas de comunicación entre contenedores o entre el contenedor y el host.

Ejemplos

Servidor web con PHP

En el siguiente ejemplo creamos un archivo docker-compose.yml que define un servicio llamado web, se utiliza la imagen de PHP 7.3 con apache, se expone el puerto 80 y finalmente se apunta la carpeta local www/ al directorio de publicación interno del contenedor.


version: '3'

services:
  web:
    image: php:7.3-apache
    container-name: docker-php
    ports:
      - "80:80"
    volumes:
      - ./www:/var/www/html

Luego creamos una carpeta llamada www/ donde colocaremos los archivos php del proyecto, finalmente creamos el contenedor con el comando docker-compose up -d.

Servidor web con PHP personalizado

Para este ejemplo, utilizamos un archivo Dockerfile para crear una imagen a medida que contenga extensiones adicionales de PHP (mysql, pdo y pdo_mysql) y un módulo de Apache (rewrite).


FROM php:7.2-apache

RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN a2enmod rewrite

Luego creamos el archivo de docker-compose.yml, a diferencia del ejemplo anterior utilizamos la regla build donde indicamos la ruta donde se encuentra el archivo Dockerfile y container_name para asignar un nombre al contenedor.


version: '3'

services:
  web:
    build: .
    container_name: docker-php
    ports:
      - "80:80"
    volumes:
      - ./www:/var/www/html

Para completar este artículo compartimos un repositorio llamado Docker: PHP con una instalación personalizada de PHP, donde hemos agregado la carpeta de publicación y una documentación básica.

Referencias

Envíar Comentario

En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas <pre></pre>