Primeros pasos con Docker

No se si vosotros tenéis el recelo de conservar vuestro equipo lo mas limpio de software que solo vais a necesitar para un proyecto determinado. Ya sea una determinada versión de motor de base de datos, una determinada versión de PHP o algún sistema como Jenkins o SonarQube para trastearlos. A mí al menos se me atascan los chakras cuando he tenido que instalar la enésima versión de un mismo motor de base de datos porque la necesito para un único proyecto.

Para evitar esto siempre he tirado de Virtual Box; tenía preparados unos equipos virtuales ‘vacíos’ para clonarlos y torturarlos con mis pruebas. Pero claro, estas imágenes dejaban mi ordenador frito de memoria y CPU, además de darle un buen bocado a mi disco duro. Un día descubrí Docker y mi vida cambio a mejor. Docker ofrece una virtualización ligera, evita la virtualización del sistema operativo.

En esta entrada os voy a contar mis primeros pasos con Docker así como un par de casos de uso que pude cubrir con él. Los siguientes comandos están pensados para una instalación de Docker en Windows, para instalaciones en Linux los comandos pueden diferir un poco.

Conceptos básicos de Docker

Docker hace uso de un repositorio de imágenes. Estas imágenes pueden ser sistemas operativos ‘pelados’ pero operativos para trabajar con ellos o bien pueden ser sistemas preinstalados como pudiera ser un servidor web o una base de datos. Cada instancia que se levanta de una imagen se denomina contenedor. Si buscamos la analogía entre Virtual Box y Docker, una ISO de Ubuntu es a una imagen Docker lo que una máquina virtual es a un contenedor.

Cómo arrancar un contenedor con Apache

El siguiente comando sería la forma más básica de levantar un Apache:

docker run httpd:latest

Este comando crea un contenedor a partir de la última versión de la imagen httpd (la cual descargará del repositorio hub.docker.com de no tenerla descargada). Seguidamente se muestra la salida estándar del contenedor en la consola. Para que el contenedor se ejecute en segundo plano y la consola quede liberada usaremos la opción –detach (-d):

docker run -d httpd:latest

También comentar que este servidor no estará accesible aun desde nuestro equipo. Los contenedores se crean en la red bridge y solo son accesibe desde ella. Para que sean accesibles desde fuera de esta red hay que ‘mapear’ el puerto del host al puerto del contenedor. Por ejemplo para mapear el puerto 80 de nuestro host al 80 del contenedor lo hacemos añadiendo al comando el parámetro –publish (-p) de la siguiente forma:

docker run -d -p 80:80 httpd:latest

De esta forma ya estaría accesible el servidor accediendo al puerto 80 de nuestro local:

Comandos básicos de manejo de Docker

Y como no podría explicar más apartados de este sistemas sin dedicarle una entrada entera a cada uno de ellos voy a dejar una lista de los comandos necesarios para manejarse con los contenedores, las imágenes, etc, y que podais dar los primeros pasos con Docker.

Y por supuesto no están todos ni todas sus opciones. Para consultar la ayuda lo haremos con la opción –help (ej: docker network –help)

Lanzar un contenedor

docker run -d -p 80:80 httpd:latest

Parar un contenedor

docker stop CONTAINER_ID 

Eliminar un contenedor

docker rm  CONTAINER_ID

Consultar imágenes descargadas

docker image ls

Eliminar imagen

 docker image rm IMAGE_ID

Consultar info de imagen

docker image inspect IMAGE_ID

Listado de redes

docker network ls

Contenedores en ejecución

docker ps

Consulta de contenedores en ejecución y parados

docker ps -a

Información de un determinado contenedor

docker inspect CONTAINER_ID

Con estos comandos será suficiente para dar los primeros pasos con Docker y para que os surjan nuevas dudas y curiosidades. En próximos artículos nos adentraremos en algunos aspectos de Docker en profundidad.

Referencias

Documentación de referencia

Repositorio central de imágenes

Si te gustó, comparte!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Resumen de nuestra política de privacidad

Responsable: Pedro López Llorca. Finalidad: Control de spam y gestión de comentarios. Legitimación: Se requiere tu consentimiento para publicar un comentario. Destinatarios: Tus datos se alojan en los servidores de Hostinger. Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra Política de Privacidad)


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.