Tutorial básico de Docker

31/07/2019 | Docker | 0 comentarios

Aprende los conceptos básico de Docker y crea tu primer contenedor parar utilizarlo como ambiente de desarrollo.


Docker

Docker es una plataforma que permite crear, probar e implementar aplicaciones rápidamente, para ello empaqueta el software en unidades estandarizadas llamadas contenedores que incluyen todo lo necesario para que una aplicación se ejecute.

Esto significa que es posible tener multiples aplicaciones ejecutandose sin necesidad de utilizar software de virtualización, por ejemplo podríamos tener: PHP 7.2, PHP 5.2, MySQL, etc.

Con Docker se evitan los problemas de compatibilidad pues se pueden configurar las versiones exactas de las aplicaciones, no se requiere hardware especial por que se puede ejecutar en Windows, masOS o Linux, es soportado por todos los servicios en la nube como AWS, Azure, Bluemix.

Conceptos utilizados en Docker

Es importante familiarizarnos con algunos términos utilizados en Docker:

  • Docker image: es un paquete de código ejecutable que incluye todo lo necesario para crear una aplicación. Por ejemplo una imagen de PHP 7.2
  • Docker container: es una instancia de ejecución de una imagen Docker. Es posible crear varios contenedores utilizando una sola imagen como base.
  • Docker hub: es el repositorio público de imágenes http://hub.docker.com donde se puede encontrar gran variedad de imágenes pre-configuradas listas para usar.
  • Docker client: Es el interprete en línea de comandos para interactuar con Docker.

Primeros pasos en Docker

Para uso en ambientes de desarrollo sólo tienes que descargar Docker Desktop el cual instala Docker con todo lo necesario para utilizarlo rápidamente.

Descargando imágenes Docker

Es posible buscar entre cientos de imágenes pre-configuradas en Docker Hub, algunas de ellas oficiales y otras contribuciones de la comunidad por lo que debes tener cuidado al elegir. Una vez ubicada la imagen puedes descargarla con el comando docker pull.

Veamos un ejemplo para descargar PHP 7.2 con Apache:

docker pull php:7.2-apache

Configurando imágenes Docker

Normalmente es necesario crear imágenes personalizadas de acuerdo a nuestras necesidades, para ello existe el archivo Dockerfile donde se puede configurar los pasos a seguir para crear una nueva imagen (instalar módulos adicionales, ejecutar scripts de inicialización, etc).

Veamos un ejemplo para crear una imagen personalizada de PHP 7.2 con extensiones adicionales (mysql, pdo, pdo_mysql) y habilitamos un módulo de Apache (rewrite):


FROM php:7.3-apache

COPY www/ /var/www/html/

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

Para crear la nueva imagen en base al archivo Dockerfile se utiliza el comando docker build. Como ejemplo creamos una imagen llamada kodetop-php:

docker build -t kodetop-php .

Creando contenedores

Ahora que ya tenemos la imagen, podemos crear el contenedor, esto se hace con el comando docker create el cual recibe varios parámetros que dependen de cada imagen.

Como ejemplo crearemos un contenedor llamado kodetop-server-php utilizando la imagen creada previamente donde exponemos el puerto 80:

docker create --name kodetop-server-php -p 80:80 kodetop-php

Utilizando contenedores

Una vez que tenemos creado el contenedor, podemos iniciarlo (docker start), detenerlo (docker stop) o eliminarlo (docker rm) utilizando su nombre o identificador.

Como ejemplo iniciemos el contenedor recién creado:

docker start kodetop-server-php

Listo, ya tenemos un servidor web con PHP 7.2 funcionando y podríamos acceder al mismo utilizando la ruta http://localhost.

Resumen de comandos

Dejamos una lista de los comandos más usados en Docker para que puedas practicar y aprender.


# Manejo de imagenes
docker images                   # Lista todas las imagenes 
docker pull [image-name]        # Descarga una imagen desde docker hub
docker build -t [image-name] .  # Crea una imagen y le asigna un nombre
docker rmi [image-name]         # Elimina una imagen usando el nombre
docker rmi [image-id]           # Elimina una imagen basado el ID

# Crear contenedor
docker create --name [container-name] [image-name]

# Manejo de contenedores
docker ps                       # Lista los contenedores en ejecución
docker ps -a                    # Lista todos los contenedores
docker start [container-name]   # Inicia el contenedor usando el nombre
docker start [container-id]     # Inicia el contenedor usado en ID
docker stop [container-name]    # Detiene el contenedor usando el nombre
docker stop [container-id]      # Detiene el contenedor usando el ID
docker rm [container-name]      # Elimina el contenedor usando el nombre
docker rm [container-id]        # Elimina el contenedor usando el ID

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>