Si está en la industria de TI, es muy probable que haya oído hablar de Docker, a menos que viva dentro de una cueva o en una región remota completamente aislada del resto del mundo. Docker es una tecnología de contenedorización de código abierto que ha revolucionado la forma en que los desarrolladores desarrollan e implementan aplicaciones. Permite a los equipos de desarrollo crear, administrar e implementar aplicaciones dentro de contenedores. Un contenedor es un paquete de software precompilado independiente que incluye sus propias bibliotecas y dependencias. Los contenedores se ejecutan en completo aislamiento del sistema operativo host y también entre sí.
Docker ofrece inmensos beneficios. Antes de la creación de contenedores, los desarrolladores solían encontrar problemas al escribir e implementar código en varias versiones de Linux. Una aplicación funcionaría perfectamente bien en un sistema solo para fallar en otro sistema. Docker estandariza la implementación del código y garantiza que las aplicaciones puedan ejecutarse sin problemas en varios entornos informáticos sin encontrarse con problemas de dependencia o errores. Además, los contenedores contribuyen a grandes economías de escala. Docker es amigable con los recursos, liviano y bastante eficiente.
En esta guía, instalaremos Docker en Arch Linux y también aprenderemos a usar Docker para ejecutar contenedores.
requisitos previos
- Instancia Arch Linux con acceso SSH
- Un usuario sudo configurado
- Conexión a internet estable
Paso 1) Instalar Docker en Arch Linux
Hay varias formas que puede usar para instalar Docker. Puede instalar el paquete estable que está alojado en el repositorio de la comunidad de Arch o instalarlo desde AUR.
Sin embargo, vamos a instalar Docker en Arch Linux desde el repositorio usando el comando como se muestra.
$ sudo pacman -S docker
Paso 2) Administrar Docker
Docker se ejecuta como un servicio de daemon al igual que otros servicios como Apache o SSH. Esto significa que puede iniciar, detener, reiniciar y habilitar el servicio Docker.
Una vez que se complete la instalación, inicie la ventana acoplable y habilítelo para que se inicie en el arranque con los comandos a continuación.
$ sudo systemctl start docker $ sudo systemctl enable docker
Para confirmar que el servicio docker se está ejecutando, emita el comando:
$ sudo systemctl status docker
El siguiente resultado muestra claramente que Docker está funcionando.
Para detener la ventana acoplable, invoque el comando:
$ sudo systemctl stop docker
Además, puede confirmar la versión de Docker que está ejecutando con el comando de versión de docker que se muestra.
$ sudo docker version
Cómo probar y usar docker
Para probar si todo funciona como se esperaba, ejecutaremos el siguiente comando docker para activar un contenedor ‘hello-world’
$ sudo docker run hello-world
Cuando se invoca el comando, Docker se pone en contacto con Docker Hub y descarga una imagen de Docker llamada ‘hello-world’. Luego, Docker crea un nuevo contenedor que ejecuta el script ejecutable que transmite el mensaje ‘¡Hola desde Docker!’.
Para descargar o extraer una imagen de Docker hub sin ejecutarla, use la sintaxis:
$ sudo docker pull
Por ejemplo, para extraer una imagen de Nginx, ejecute:
$ sudo docker pull nginx
Para verificar las imágenes que residen en su sistema, invoque:
$ sudo docker images
En el resultado, puede ver que tenemos dos imágenes hasta el momento: la imagen Nginx y hello-world que se descargó anteriormente. La salida proporciona información adicional, como el repositorio, la etiqueta de la imagen, la identificación de la imagen, la fecha de modificación y el tamaño de la imagen.
Para ejecutar una imagen, invoque el comando:
$ sudo docker ejecutar
Sin embargo, ejecutar una imagen directamente puede dejarte con un terminal que no responde, ya que la imagen generalmente se ejecuta en primer plano. Por lo tanto, se recomienda ejecutarlo en segundo plano usando la opción -d.
Por ejemplo, para ejecutar la imagen de Nginx en segundo plano, ejecute:
$ sudo docker run -d nginx
Para confirmar los contenedores en ejecución actuales, emita el comando:
$ sudo docker ps
Para ver todos los contenedores, tanto los que se están ejecutando como los que se han detenido previamente, ejecute:
$ sudo docker ps -a
El siguiente resultado nos da el contenedor Nginx actual y el contenedor ‘Hello-world’ que ejecutamos anteriormente.
Para detener un contenedor, utilice el comando docker stop seguido del ID del contenedor. Por ejemplo, para detener el contenedor Nginx, ejecute:
$ sudo docker stop 968ff5caba7f
Algunos contenedores generados a partir de imágenes del sistema operativo pueden requerir alguna interacción del usuario. Por ejemplo, es posible que desee interactuar con una imagen de contenedor de Ubuntu y acceder al shell para ejecutar comandos. Para lograr esto, use el indicador -it.
Para ilustrar mejor esto, vamos a descargar la imagen acoplable de Ubuntu 20.04.
$ sudo docker pull ubuntu:20.04
Ahora vamos a acceder al shell y ejecutar comandos dentro del contenedor.
$ sudo docker run -it ubuntu:20.04
A veces, es posible que desee ejecutar un contenedor de servidor web y asignar su puerto al sistema host para lograr esto, use la opción -p que se muestra
$ sudo docker -p 8080:80 nginx
El puerto 80 es el puerto en el que escucha el contenedor Nginx que se asigna en el puerto 8080 en el host. Puede probar esto accediendo al servidor web Nginx usando la dirección IP del host como se muestra:
http://host-ip:8080
Conclusión
Docker es sin duda una herramienta poderosa y robusta, especialmente en el campo DevOPs. Agiliza el flujo de trabajo y ayuda a los desarrolladores a crear e implementar sin problemas sus aplicaciones sin las inconsistencias que vienen con diferentes entornos informáticos. Apenas hemos arañado la superficie en lo que respecta al uso del comando Docker. Para obtener más documentación, diríjase a la Guía para principiantes. Adicionalmente, está el documentación oficial para ayudarlo a navegar por Docker.