Cómo instalar Docker en Debian 11
Docker es un conjunto de plataformas abiertas que proporciona virtualización a nivel de sistema operativo para desarrollar, enviar y ejecutar aplicaciones. En Docker, las aplicaciones se entregan como unidades estandarizadas de paquetes denominadas contenedores. Cada contenedor está aislado entre sí, incluidas las bibliotecas y los archivos de configuración, pero cada uno de ellos puede comunicarse a través de canales de red bien definidos.
Por ahora, Docker se ha convertido en un estándar para el desarrollo de software y DevOps. Lo utilizan millones de desarrolladores para crear, compartir y ejecutar cualquier aplicación todos los días en el trabajo. Se utiliza en el ciclo de vida del desarrollo de aplicaciones, desde el propio desarrollo, las pruebas y la producción. Con Docker, la aplicación se vuelve más flexible y portátil. Las aplicaciones se pueden ejecutar en cualquier lugar en diferentes sistemas operativos de una manera fácil, pero la aplicación en sí sigue siendo la misma, desde las bibliotecas hasta los archivos de configuración.
En este tutorial, aprenderá a instalar Docker en Debian 11 Bullseye. Además, aprenderá el uso básico de Docker para ejecutar contenedores y administrar imágenes.
requisitos previos
- Un servidor Debian 11. Asegúrese de que todos los paquetes estén actualizados a la última versión.
- Un usuario root o un usuario con privilegios de root. Este usuario se utilizará para instalar nuevos paquetes y editar configuraciones del sistema.
Instalar dependencias
Primero, instalará algunas dependencias de paquetes básicos en su sistema Debian.
1. Ejecute el comando apt a continuación para instalar nuevas dependencias de paquetes.
apt install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release
Escribe ‘y‘ y presione ‘Ingresar‘ para instalar todos esos paquetes.
Agregar repositorio de Docker
Para esta guía, instalará Docker desde el repositorio oficial de Docker. Por lo tanto, agregará un nuevo repositorio de Docker a su sistema Debian.
1. Ejecute el siguiente comando para agregar la clave GPG para Docker.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2. Después de eso, agregue el repositorio Docker para el sistema Debian 11 usando el siguiente comando.
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 > /dev/null
3. Ahora ejecute el ‘actualización adecuada‘ comando para actualizar/refrescar todos los repositorios disponibles.
apt update
Ahora está listo para instalar Docker en Debian 11 Bullseye.
Instalación de Docker en Debian 11
1. Si su sistema tiene Docker instalado desde el repositorio de Debian anteriormente, debe eliminarlo usando el siguiente comando.
sudo apt remove docker docker-engine docker.io containerd runc
2. Después de eso, puede instalar Docker nuevamente usando el comando apt a continuación.
apt install docker-ce docker-ce-cli containerd.io
Escribe ‘y‘ y presione ‘Ingresar‘ para confirmar la instalación.
3. Si la instalación está completa, ejecute el siguiente comando para verificar la instalación.
Compruebe si el servicio está habilitado o no.
systemctl is-enabled docker systemctl is-enabled containerd
Verifique el estado del servicio de Docker y Containerd.
systemctl status docker containerd
A continuación se muestra el resultado similar que obtendrá.
Como se ve, los servicios Docker y Containerd son activo (corriendo)y ambos servicios son activado y se ejecutará automáticamente al iniciar el sistema.
Permitir que un usuario no root acceda a Docker
De forma predeterminada, Docker permite solo al usuario ‘raíz‘ para ejecutar contenedores. Y para que un usuario no root pueda ejecutar contenedores, debe agregar su usuario no root al grupo ‘estibador‘, que se crea automáticamente durante la instalación de Docker.
1. Para este ejemplo, usará un usuario ‘johndoe‘ para ejecutar un contenedor Docker.
Cree el nuevo usuario ‘johndoe’ en su sistema Debian usando el siguiente comando.
useradd -m -s /bin/bash johndoe
2. Después de eso, ejecute el siguiente comando para agregar el usuario ‘johndoe‘al grupo’estibador‘.
usermod -aG docker johndoe
3. Ahora inicie sesión como usuario ‘johndoe‘ usando el siguiente comando y verifique la configuración.
su - johndoe
Ejecute el siguiente comando docker para verificar su instalación.
docker run hello-world
Y verás la ‘Hola ventana acoplable‘mensaje a continuación.
A continuación se muestra una explicación simple del comando docker que ejecuta en la parte superior.
- La ventana acoplable intentará encontrar un nombre de imagen ‘hello-world’. Si la imagen está disponible localmente, Docker ejecutará el contenedor; si la imagen no está disponible localmente, Docker buscará y descargará la imagen ‘hello-world’ en Docker-hub (repositorio de imágenes de docker predeterminado).
- Si se descarga la imagen de la ventana acoplable, la ventana acoplable ejecutará el contenedor. Y el contenedor ejecuta comandos y le muestra el mensaje ‘Hola Docker’.
4. Ahora verifique el contenedor de la ventana acoplable usando el comando de la ventana acoplable a continuación.
Comprobando contenedor con estado ‘correr‘.
docker ps
Comprobación de todos los contenedores: se le mostrarán todos los contenedores, los que se están ejecutando actualmente y los contenedores detenidos.
docker ps -a
A continuación se muestra una salida similar a la siguiente.
Como puede ver, el nuevo nombre del contenedor ‘negrita_bartix‘ se crea con la imagen base ‘Hola Mundo‘, y el estado actual del contenedor es ‘Salido‘ o detenido. Docker elige aleatoriamente el nombre del contenedor ‘bold_bartix’ en la captura de pantalla, pero puede especificar el nombre de su contenedor.
Uso básico de Docker
Para esta etapa, aprenderá el uso muy básico de Docker para administrar imágenes y contenedores.
1. Primero, descargue las imágenes de Docker a su computadora local usando el siguiente comando.
docker pull nginx:alpine
El comando descargará el nombre de la imagen Docker ‘nginx‘ y etiqueta ‘alpino‘ a su sistema.
El término ‘etiquetas‘ es como una versión de la imagen misma. Los ‘nginx: alpino‘ significa el ‘nginx‘imagen con etiqueta’alpino‘, lo que significa basado en el sistema operativo Alpine Linux. Compruebe siempre todas las etiquetas disponibles de las imágenes de Docker en el repositorio oficial de Docker-Hub.
A continuación se muestra un ejemplo de todas las etiquetas disponibles para la imagen de Docker ‘nginx‘.
Para verificar todas las imágenes acoplables disponibles en su sistema local, ejecute el siguiente comando acoplable.
docker images
Verá una salida similar a la siguiente.
Como se ve, tiene dos imágenes de Docker, la nginx: alpino y Hola Mundo.
2. A continuación, ejecute el siguiente comando para ejecutar un contenedor.
docker run -it --rm -d -p 8080:80 --name web nginx:alpine
Ahora obtendrá la cadena aleatoria y el número del nuevo contenedor.
Opciones que debes conocer:
- -i o –interactive: mantenga el contenedor STDIN abierto incluso si no está conectado.
- -t o –tty: asigna una pseudo-terminal que conecta su terminal con STDIN y STDOUT del contenedor.
- –rm – quitar automáticamente el contenedor cuando el contenedor se sale o se detiene.
- -d – ejecutar el contenedor en segundo plano, desconectar el contenedor después de que se esté ejecutando.
- -p 8080:80 – mapear el puerto entre el contenedor y el sistema host. El puerto ‘80‘ sobre el envase se asigna a la sistema anfitrión Puerto ‘8080‘.
- –nombre web – especifique el nuevo nombre del contenedor como ‘web‘.
- nginx: alpino – la imagen de Docker que usamos es ‘nginx: alpino‘.
Ahora verifique el contenedor en ejecución usando el siguiente comando.
docker ps
Verá un resultado similar al siguiente.
Para verificar su contenedor Nginx, abra su navegador web y escriba la dirección IP de su servidor con el puerto ‘8080‘.
http://192.168.1.10:8080/
Y verá la página de índice de Nginx del contenedor ‘web ‘ como a continuación.
3. A continuación, puede verificar el registro del contenedor ejecutando el siguiente comando docker.
docker logs web
Y verá todos los registros de su contenedor, de principio a fin.
Para limitar la salida del registro, puede usar el ‘–cola n‘ opción como se muestra a continuación.
docker logs --tail 10 web
Y verás el últimas 10 líneas de los registros del contenedor.
4. Ahora, para detener el contenedor Docker, puede usar el comando Docker a continuación.
docker stop web
Después de eso, verifique el contenedor en ejecución usando el siguiente comando.
docker ps docker ps -a
Verá el siguiente resultado como se muestra a continuación.
Los ‘webEl contenedor se detiene y se elimina automáticamente. Es porque usas la opción ‘–rm‘ al ejecutar el contenedor.
5. A continuación, aprenderá a ejecutar el contenedor con el volumen personalizado. El directorio en la máquina host se utilizará como volumen para el contenedor de Docker.
Crear el nuevo ‘datos‘directorio y personalizado’índice.html‘archivo usando el siguiente comando.
mkdir -p ~/data/ nano ~/data/index.html
Copie y pegue el personalizado ‘índice.html‘ script como se muestra a continuación.
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Welcome to Docker Nginx</title> </head> <body> <h2>Hello from Nginx container</h2> </body> </html>
Guarde la configuración presionando el botón ‘Control+x‘ botón, escriba ‘y‘, entonces presione ‘Ingresar‘.
A continuación, cree el nuevo contenedor con el siguiente comando acoplable.
docker run -it --rm -d -p 8080:80 --name web -v ~/data:/usr/share/nginx/html nginx:alpine
Ahora obtendrá el número aleatorio y la cadena del contenedor.
La opción ‘-v ~/datos:/usr/share/nginx/html‘ montará el ‘~/datos‘ en la máquina local al contenedor en el ‘/usr/share/nginx/html‘directorio.
Ahora verifique el contenedor Docker usando el siguiente comando.
docker ps
Y verá una salida similar a la siguiente.
A continuación, abra su navegador web nuevamente y escriba la dirección IP del servidor siguiendo con el puerto ‘8080‘ como a continuación.
Y obtendrá el ‘index.html’ personalizado que acaba de crear en la parte superior, lo que significa el ‘~/datos‘ el directorio está montado en el contenedor ‘/usr/share/nginx/html‘directorio.
6. Además, puede iniciar sesión en el contenedor en ejecución actual ‘web‘ ejecutando el siguiente comando docker.
Primero, verifique el contenedor ‘web‘ Esta corriendo.
docker ps
Ahora adjúntelo al contenedor ‘web’ usando el siguiente comando.
docker exec -it web /bin/sh
Dentro del contenedor, verifique el nombre de host del contenedor usando el siguiente comando.
hostname
Verifique la dirección IP del contenedor usando el ‘ip‘comando a continuación.
ip a
Verifique la tabla de enrutamiento del contenedor usando el siguiente comando.
route -n
A continuación se muestra el resultado similar que obtendrá.
Para limpiar su entorno actual, detenga el ‘web‘ contenedor usando el siguiente comando.
docker stop web
Además, puede eliminar todos los contenedores con el estado ‘salió‘ usando el siguiente comando.
docker rm $(docker ps --filter "status=exited" -q)
Conclusión
¡Felicidades! Ha instalado correctamente Docker en Debian 11 Bullseye. Además, aprendió el uso básico de Docker para extraer una imagen de Docker-Hub, ejecutar el contenedor de Docker, verificar el estado del contenedor de Docker, los registros y el uso básico del volumen de Docker. Para el siguiente paso, puede intentar crear su imagen de Docker personalizada para su aplicación y enviarla al repositorio de Docker Hub.