GNU/Linux >> Tutoriales Linux >  >> Debian

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

  • 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 siguiente comando apt para instalar nuevas dependencias de paquetes.

apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Escriba 'y ' y presione 'Entrar ' 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 ejecuta la 'actualización apt ' comando para actualizar/actualizar todos los repositorios disponibles.

apt update

Ahora está listo para instalar Docker en Debian 11 Bullseye.

Instalando 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

Escriba 'y ' y presione 'Entrar ' 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 están activos (en ejecución) y ambos servicios están habilitados y se ejecutará automáticamente al iniciar el sistema.

Permitir usuario no root a Docker

De forma predeterminada, Docker solo permite al usuario 'root ' para ejecutar contenedores. Y para que un usuario no root pueda ejecutar contenedores, debe agregar su usuario no root al grupo 'docker ', 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 'docker '.

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á el 'Hola Docker ' 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 "hola-mundo". 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 'en ejecución '.

docker ps

Comprobación de todos los contenedores:le mostrará todos los contenedores, los que se están ejecutando actualmente y los que están detenidos.

docker ps -a

A continuación se muestra una salida similar a la siguiente.

Como puede ver, el nuevo nombre de contenedor 'bold_bartix ' se crea con la imagen base 'hello-world ', 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á un 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 de Docker 'nginx ' y etiqueta 'alpino ' a su sistema.

El término 'etiquetas ' es como una versión de la imagen misma. El 'nginx:alpino ' significa el 'nginx ' imagen con la etiqueta 'alpine ', 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 de ventana acoplable disponibles en su sistema local, ejecute el siguiente comando de ventana acoplable.

docker images

Verá un resultado similar al siguiente.

Como se ve, tiene dos imágenes Docker, la nginx:alpine 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:

  • -yo 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 - eliminar automáticamente el contenedor cuando 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 ' en el contenedor está asignado al sistema host puerto '8080 '.
  • --nombre web - especifique el nuevo nombre del contenedor como 'web '.
  • nginx:alpino - la imagen de Docker que usamos es 'nginx:alpine '.

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 desde el contenedor 'web ' como se muestra a continuación.

3. A continuación, puede comprobar 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 '--tail n ' opción como se muestra a continuación.

docker logs --tail 10 web

Y verás las ú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.

La 'red El 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 usará como un volumen para el contenedor Docker.

Crea los nuevos 'datos ' directorio y 'index.html personalizado ' archivo usando el siguiente comando.

mkdir -p ~/data/
nano ~/data/index.html

Copie y pegue el 'index.html personalizado ' 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 'Ctrl+x botón ', escriba 'y ', luego presione 'Entrar '.

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 ~/data:/usr/share/nginx/html ' montará el '~/data ' en la máquina local al contenedor en '/usr/share/nginx/html ' directorio.

Ahora verifique el contenedor Docker usando el siguiente comando.

docker ps

Y verá un resultado similar al siguiente.

A continuación, abra su navegador web nuevamente y escriba la dirección IP del servidor siguiendo con el puerto '8080 ' como se muestra a continuación.

http://192.168.1.10:8080/

Y obtendrá el 'index.html' personalizado que acaba de crear en la parte superior, lo que significa '~/data ' 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, revisa el contenedor 'web ' se está ejecutando.

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 la 'web ' contenedor usando el siguiente comando.

docker stop web

Además, puede eliminar todos los contenedores con el estado 'salido ' 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.


Debian
  1. Cómo instalar Docker en Debian 10 Buster

  2. Cómo instalar Docker en Debian 10 Buster Linux

  3. Cómo instalar Docker Engine en Debian 11

  4. Cómo instalar Docker en Debian 9 (Stretch)

  5. Cómo instalar y configurar docker en Debian 11

Cómo instalar Docker en Debian 9 Stretch

Cómo instalar Docker Compose en Debian 9 Stretch

Cómo instalar Go en Debian 10

Cómo instalar Bitwarden en Debian 11

Cómo instalar Docker CE en Debian 11

Cómo instalar Go en Debian