Primeros pasos para trabajar con Docker

Docker es una tecnología que ha revolucionado el mundo del desarrollo y la administración de sistemas. Esta plataforma de código abierto se ha convertido en un estándar para la creación, despliegue y ejecución de aplicaciones facilitando su funcionamiento en cualquier entorno de manera rápida, ligera y consistente.

A continuación, analizaremos los conceptos básicos de Docker y cómo instalarlo. Después, repasaremos los comandos esenciales que cualquier administrador de sistemas debe conocer.

¿Qué es Docker?

Docker permite de manera muy sencilla crear, desplegar y ejecutar aplicaciones en contenedores de software, aislando aplicaciones y sus dependencias mediante contenedores. De esta forma, facilita la ejecución de nuestras aplicaciones desde cualquier sistema sin gastar mucho tiempo. Esto se debe a que el arranque del contenedor es inmediato, pues no usa un sistema operativo completo. Además, es sumamente limpio. Al instalar todas las dependencias dentro del contenedor, no necesitamos llenar nuestro equipo con librerías y dependencias que luego producen conflicto con otras que ya tenemos instaladas o que puedan instalarse en el futuro.

Otra de sus características es que se gestiona mediante un conjunto de comandos muy práctico. Gracias a ellos, es posible administrar y controlar aplicaciones y contenedores con gran eficiencia. Su mayor fortaleza es el automatismo de tareas recurrentes, que se realiza a través de dichos comandos, y que facilitan la creación, ejecución, detención y eliminación de los contenedores. Por otra parte, es posible manejar múltiples contenedores de una forma simple, lo cual es idóneo en entornos de producción o de alta disponibilidad.

Un entorno principal donde la herramienta juega un papel fundamental es en pipelines de integración y entrega continua (CI/CD), ya que ofrece las siguientes ventajas:

  • Portabilidad. Es posible correr un contenedor en cualquier lugar sin que los detalles del sistema operativo influyan en la ejecución de la aplicación.
  • Aislamiento. Cada contenedor corre por sí solo, previniendo la interferencia de aplicaciones con otras aplicaciones o con el sistema operativo.
  • Rápida ejecución. Los contenedores arrancan instantáneamente, sin tener que cargar un sistema operativo completo.
  • Consistencia entre entornos. Docker asegura que tu aplicación se ejecutará exitosamente en cualquier entorno (desarrollo, pruebas, producción).
  • Eficiencia. Al ejecutar aplicaciones en contenedores, se reduce la sobrecarga de recursos porque no necesitas instancias completas de máquinas virtuales.

Instalación de Docker en Linux

A continuación, procederemos a instalar Docker para poner en práctica esta herramienta.

  1. Actualizamos el sistema
sudo apt-get update
sudo apt-get upgrade
  1. Instalamos las dependencias necesarias
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  1. Agregamos la clave GPG oficial de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. Añadimos el repositorio de Docker
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  1. Actualizamos los repositorios
sudo apt-get update
  1. Instalamos Docker
sudo apt-get install docker-ce
  1. Verificamos la instalación
sudo docker --version

Hasta este punto, ya tenemos Docker listo para ser utilizado. Ahora, ya que Docker usa privilegios de usuario (root) para ejecutarse, podemos añadir nuestro usuario al grupo docker para no tener que usar sudo. Para hacer esto, ejecutamos el siguiente comando:

sudo usermod -aG docker $USER

Después, simplemente sería necesario probar que Docker funciona correctamente con:

docker run hello-world

Adicionalmente, es recomendable usar Docker Desktop si eres nuevo con esta herramienta, ya que te aportará una interfaz gráfica que facilita bastante el aprendizaje y su uso.

Comandos de Docker más utilizados

A continuación, veremos una lista de los comandos más importantes en Docker que nos servirán para empezar a trabajar con esta tecnología.

  • docker run: ejecuta una imagen de contenedor, pudiendo especificar qué imagen quieres ejecutar así como cualquier argumento que se le pase al contenedor.
  • docker build: crea una imagen de contenedor a partir de un archivo Dockerfile. Se trata de un archivo de texto que contiene instrucciones sobre cómo construir dicha imagen.
  • docker push: envía una imagen de contenedor a un registro de contenedores, que es un repositorio centralizado donde se pueden almacenar y distribuir.
  • docker pull: descarga una imagen de contenedor de un registro de contenedores.
  • docker stop: detiene un contenedor en ejecución.
  • docker rm: elimina un contenedor que no se está ejecutando.
  • docker ps: muestra una lista de contenedores en ejecución.
  • docker logs: enseña los registros de un contenedor.
  • docker exec: ejecuta un comando dentro de un contenedor.
  • docker attach: se usa para adjuntar a un contenedor en ejecución y obtener una consola shell interactiva.
  • docker images: muestra todas las imágenes disponibles en tu sistema local, permitiendo ver qué versiones se pueden utilizar.
  • docker-compose: se trata de una herramienta que permite gestionar aplicaciones multi-contenedor con un solo comando, facilitando la orquestación de servicios en Docker.

Integración de Docker con CI/CD

Docker juega un papel fundamental en los flujos CI/CD. Facilita la creación de pipelines de despliegue automáticos, donde las aplicaciones pueden ser empaquetadas en contenedores de manera consistente y desplegadas de una manera segura y eficiente. Docker también facilita la escalabilidad, ya que se pueden crear varias instancias de contenedores que funcionen en paralelo para manejar cargas de trabajo más grandes o complejas.

Docker en Producción

Docker no solo es útil en el desarrollo y las pruebas de aplicaciones. Además, su implementación en producción se ha vuelto mucho mayor debido a su eficiencia y confiabilidad. Puedes correr aplicaciones aisladamente dentro de contenedores usando Docker y eso te permite manejar tus aplicaciones y recursos de una manera más eficiente. Adicionalmente, la implementación de Docker en producción se potencia con herramientas como Kubernetes, que permite la orquestación de contenedores a gran escala.

Conclusión

En este artículo, hemos analizado qué Docker y cuáles son sus beneficios. Además, hemos visto una manera rápida de instalarlo y repasado sus comandos más usados. Docker es una tecnología sumamente potente, que en la actualidad está bastante extendida, y que aporta una serie de funcionalidades muy interesantes: consistencia entre entornos, escalabilidad, aislamiento, portabilidad, automatización, repetibilidad, integración con herramientas CI/CD y despliegue rápido y seguro a producción.

Te animamos a que trabajes con esta tecnología si nunca la has utilizado para mantener tu equipo siempre limpio y administrar tus aplicaciones de una forma rápida, fácil y sin agotar mucho espacio en tu disco.

Hasta aquí nuestro post de hoy. Si te ha parecido interesante, te animamos a visitar la categoría Software para ver artículos similares y a compartirlo en redes con tus contactos. ¡Hasta pronto!
Vanessa Pradas
Vanessa Pradas
Artículos: 16