Docker es una herramienta de plataforma abierta que ofrece un entorno de tiempo de ejecución de contenedores. Con la ayuda de este software, los programadores pueden desarrollar, enviar y ejecutar su código como un contenedor en cualquier lugar, como en las instalaciones o en la nube pública. Docker utiliza la virtualización a nivel del sistema operativo para hacer girar los contenedores. Docker Engine es el host en el que se instala Docker y se hacen girar los contenedores.
Si es un desarrollador de aplicaciones que desea operar en un entorno de código abierto, apreciará lo que Docker ofrece en la versión 11 de Debian (Bullseye). Además, este software hace que la entrega sea más rápida porque las aplicaciones específicas y sus infraestructuras de desarrollo preferidas son independientes entre sí.
Docker toma el control de la infraestructura de desarrollo y prueba de software, mientras que los desarrolladores administran las aplicaciones que se ejecutan activamente o aquellas que aún están en desarrollo. Como tal, la metodología de Docker reduce ominosamente la línea de tiempo entre la escritura del código funcional y su preparación para la producción. Da como resultado una rápida prueba, envío e implementación de códigos de aplicación.
Básicamente, el proyecto Docker ha facilitado que DevOps empaquete sus aplicaciones como "construir una vez y ejecutar en cualquier lugar" estrategia, lo que significa que crea una aplicación una vez y puede ejecutarse o ejecutarse en cualquier lugar.
El Contenedor Docker
Puede pensar en ellos como imágenes ejecutables. Con la interfaz de programación de aplicaciones (API) o la interfaz de línea de comandos (CLI) de Docker, puede realizar diversas operaciones en un contenedor de Docker. También le permite conectar un contenedor a una o más redes, otorgarle almacenamiento o crear una nueva imagen de Docker a partir de un estado ya existente.
Un contenedor suele estar bien separado de su host y máquina predeterminada. Tiene jurisdicción sobre la red privada de un contenedor, su almacenamiento y otros subsistemas fundamentales. La imagen de un contenedor y cualquier restricción de conformación que ofrezca se utiliza para crearlo o inicializarlo. Cualquier alteración o modificación del estado de un contenedor que no se guarde en el almacenamiento persistente se perderá al retirar el contenedor.
A continuación se muestran algunas de las terminologías/componentes de Docker
Contenedor Docker: Esta es una muestra en ejecución de una imagen acoplable con una aplicación y sus dependencias. Es importante señalar que cada contenedor tiene una identificación distintiva (ID) y está aislado de otros contenedores. Una cosa que comparten los contenedores es el kernel.
Cliente de Docker: Esta es una herramienta de línea de comandos que el usuario usa para interactuar con el demonio Docker.
Demonio de Docker: También conocido como Docker Engine. Hace referencia a un proceso en segundo plano que se ejecuta en el sistema host responsable de generar y ejecutar contenedores.
Registro de Docker: Esta es una aplicación responsable de administrar el almacenamiento y la entrega de imágenes de contenedores Docker. Puede ser privado o público.
Imagen acoplable: Este es un archivo inmutable, solo una captura de pantalla de un contenedor. Una imagen acoplable contiene un sistema de archivos y las dependencias de aplicaciones necesarias para ejecutar aplicaciones.
Requisitos previos:
- Usuario con derechos sudo
- sistema de 64 bits
- Conexión de red estable
- Instalación mínima de Debian 11
Instalación de Docker en Debian 11
Paso 1:Cómo instalar las dependencias de Docker
Primero, abre tu terminal usando “CTRL+ALT+T” y ejecute el siguiente comando que asegurará que su sistema esté actualizado:
sudo apt-get update

A continuación, agregaremos las dependencias de Docker requeridas al sistema Debian usando el siguiente comando:
sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Paso 2:Agregue la clave GPG oficial de Docker:
Antes de configurar el repositorio para descargar e instalar paquetes de Docker, debe agregar la clave GPG oficial de Docker en los Llaveros. El objetivo principal de esta clave es garantizar la validez de los paquetes docker descargados. Para lograr esto, ejecute el siguiente comando:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Paso 3:Agrega un repositorio estable
En esta fase, debe agregar el repositorio estable con el siguiente comando para descargar la versión actual de los paquetes docker. Así que configuraremos el repositorio
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

Paso 4:Actualizar caché de paquetes
Después de agregar la información del repositorio, debe actualizar el caché de paquetes con toda la información del paquete del repositorio recién agregado usando el comando apt como se muestra a continuación:
apt-get update

Paso 5:Instale el motor Docker
A continuación, descargue e instale la última versión del motor y el contenedor de Docker con el siguiente comando:
apt-get install docker-ce docker-ce-cli containerd.io

Paso 6:comprobar la versión de Docker
Después de una instalación exitosa, puede ejecutar el siguiente comando:
docker –version

Paso 7:comprobar el servicio de Docker
El siguiente paso es verificar el estado de Docker después de una instalación exitosa. Haremos esto usando el “systemctl” dominio. Este comando se utiliza para controlar varios servicios en un sistema. En nuestro curso, ejecutaremos el “systemctl” comando con el “estado” opción para ver si el servicio Docker está activo o inactivo en nuestro sistema Debian:
sudo systemctl status docker

Si Docker está activo, como en nuestro caso, debería ver una escritura verde activa (en ejecución) como se resalta en la instantánea anterior.
El servicio de Docker se iniciará automáticamente después de la configuración, pero siempre puede comprobarlo con el comando systemctl status docker que cubrimos anteriormente. Si es obligatorio, también puede iniciar el servicio utilizando la ventana acoplable systemctl start o reinicie el servicio usando la ventana acoplable systemctl restart comando:
Paso 8:Probar Docker
Hasta ahora, hemos instalado Docker y verificado su estado en nuestro sistema Debian. Ahora, ¿qué sigue? Tu puedes preguntar. Examinaremos el funcionamiento de Docker ejecutando un contenedor de muestra. En esencia, intentaremos ejecutar un “hello-world” contenedor docker global.
Ejecutar la imagen Hello World
Ahora puede usar el motor acoplable para crear su primer contenedor a partir de la imagen de hola mundo. Esto se puede lograr ejecutando el comando hello-world como se muestra a continuación:
docker run hello-world

Paso 9:lista de imágenes de Docker
A continuación, puede ejecutar la lista de todas las imágenes disponibles utilizando el comando de imágenes acoplables. Tome nota del parecido entre las imágenes de la ventana acoplable comando y la imagen de la ventana acoplable comando, ya que ambos sirven para diferentes propósitos. Puede utilizar la sintaxis
docker images

Paso 10:ejecutar un contenedor de Ubuntu
Aquí puede utilizar docker run -it ubuntu bash comando para ejecutar un contenedor de Ubuntu. Si no proporciona una etiqueta en particular con la imagen, por defecto buscará ubuntu:última imagen. En los casos en que la imagen no esté disponible en su sistema local, se descargará de la biblioteca de Ubuntu y luego se creará el contenedor con esa imagen. Para lograr esto, ejecuta:
docker run -it ubuntu bash

Paso 10:Enumere los contenedores de Docker
Para enumerar todos los contenedores integrados en este software, use el siguiente comando para enumerar todos los contenedores independientemente de su estado.
docker ps -a

Paso 11:Administrar contenedores Docker
En caso de que desee inicializar un contenedor, debe usar la siguiente sintaxis:
docker start <container_id>
Por ejemplo, puede iniciar un contenedor con, digamos, ID 5aa62402b888 para el ubuntu bash que creamos, como se muestra en la siguiente instantánea:
docker start 5aa62402b888

Luego, ejecute el comando ps para verificar el estado del contenedor
docker ps

En consecuencia, si desea detener un contenedor, puede utilizar la siguiente sintaxis:
docker stop <container_id>
En esencia, queremos detener el contenedor Ubuntu bash con ID 5aa62402b888. Aquí, ejecutaremos la sintaxis anterior sustituyendo la sección
docker stop 5aa62402b888

Por otra parte, use el comando ps como se mencionó anteriormente para verificar el estado:
docker ps

Como puede ver, el contenedor con ID 5aa62402b888 ya no se está ejecutando.
Además, puede eliminar la imagen usando la siguiente sintaxis de imagen:
rm <container_id>
En este caso, eliminaremos el contenedor con ID 5aa62402b888 como se muestra a continuación:
docker rm 5aa62402b888

Ahora verifique la lista de imágenes usando el comando de imágenes acoplables, y debería ver que el contenedor con ID 5aa62402b888 ya no está disponible:
docker images

Paso 12:enviar imágenes al repositorio de Docker Hub
En los casos en los que desee almacenar imágenes en repositorios como Docker Hub Repository, primero debe iniciar sesión en ese repositorio con las credenciales de su cuenta de usuario. Si no tienes una cuenta, puedes Registrarte aquí. Después de eso, inicie sesión con el siguiente comando:
docker login

Luego, ingrese su nombre de usuario y contraseña y presione enter para iniciar sesión. Para la aprobación de un inicio de sesión exitoso, debería ver un “Inicio de sesión exitoso” mensaje en la parte inferior. Ahora que ha iniciado sesión correctamente, ahora puede enviar sus imágenes usando la siguiente sintaxis:
docker push <Image_name>
Es fundamental tener en cuenta que es posible que deba etiquetar la imagen antes de enviarla al repositorio de Docker Hub.
Paso 13:Eliminar Docker
Para borrar el motor acoplable del sistema, debemos desinstalar los empaquetadores Docker Engine, CLI y Containerd con el siguiente comando:
apt-get remove docker-ce docker-ce-cli containerd.io

Tenga en cuenta que las imágenes, los contenedores, los volúmenes o los archivos de configuración personalizados de su host no se eliminan espontáneamente. Como tal, debe eliminar manualmente todas las imágenes, contenedores y volúmenes con los siguientes comandos:
sudo rm -rf /var/lib/docker

Quitar contenedor usando:
sudo rm -rf /var/lib/containerd

Beneficios de Docker
Una de las ventajas fundamentales de utilizar un software de proyecto de código abierto como Docker es la libertad de elegir la tecnología que desea utilizar para finalizar cualquier tarea. Docker es adecuado para programadores que necesitan un entorno limpio, liviano y de tamaño pequeño para propósitos de prueba y desean evitar una administración y configuraciones extensas.
El software también puede probar, enviar e implementar código rápidamente, lo que ayuda a reducir la demora entre escribir código y ejecutarlo en un entorno.
Reflexiones finales
Docker es un software de marco que se utiliza para generar, probar y desarrollar aplicaciones rápidamente. Este software organiza aplicaciones o paquetes en contenedores, incluido todo lo que su aplicación necesita para funcionar, como herramientas del sistema, tiempo de ejecución, bibliotecas y código. Docker le permite implementar y escalar aplicaciones en cualquier entorno rápidamente.
Este artículo ha cubierto profundamente cómo se puede configurar Docker en su sistema Debian 11 desde el punto fundamental hasta el punto complejo de desinstalar el software. Además de la instalación, lo hemos equipado con los comandos básicos que encontrará en sus actividades diarias con este software. Eso es todo, chicos. Esperamos que haya disfrutado de la lectura.