Docker es un software de código abierto para crear y ejecutar fácilmente aplicaciones en un entorno aislado llamado contenedores desde cualquier aplicación. Proporciona una manera eficiente de empaquetar aplicaciones con sus bibliotecas y otras dependencias en una unidad estandarizada para el desarrollo de software.
Los contenedores Docker son mucho más rápidos y eficientes que una máquina virtual porque no tienen que ejecutar un sistema operativo completo, solo el ejecutable que sirve a la aplicación.
Aquí veremos cómo instalar Docker Comunity Edition (CE) en Debian 11.
Instalar Docker en Debian 11
Eliminar versiones antiguas
Primero, desinstale las versiones anteriores de los paquetes Docker llamados docker o docker-engine, junto con las dependencias de su sistema. Sin embargo, esta desinstalación no eliminaría los volúmenes, las imágenes y las redes de Docker existentes que se encuentran en el directorio /var/lib/docker/.
sudo apt remove -y docker docker-engine docker.io containerd runc
Configurar el repositorio de Docker
Instale los paquetes a continuación para permitir que apt tenga el soporte del método HTTPS.
sudo apt update sudo apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
Agregue la clave GPG de Docker a su sistema.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Agregue el repositorio de Docker al sistema ejecutando 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
Actualice el índice del repositorio.
sudo apt update
Instalar el motor Docker
Instale Docker Engine con el comando apt.
sudo apt install -y docker-ce docker-ce-cli containerd.io
Compruebe la versión de Docker después de la instalación.
docker -v
Salida:
Docker version 20.10.8, build 3967b7d
A estas alturas, el servicio Docker debería estar en funcionamiento.
sudo systemctl status docker
Salida:
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-08-21 12:31:37 CDT; 1min 39s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 18894 (dockerd) Tasks: 8 Memory: 31.3M CPU: 448ms CGroup: /system.slice/docker.service └─18894 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192715381-05:00" level=info msg="scheme \"unix\" not registered, fallback to default s> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192736530-05:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///r> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.192749042-05:00" level=info msg="ClientConn switching balancer to \"pick_first\"" modu> Aug 21 12:31:37 debian11.itzgeek.local dockerd[18894]: time="2021-08-21T12:31:37.429344966-05:00" level=info msg="Loading containers: start."
Verificar la instalación de Docker
Para probar la instalación de Docker, ejecutaremos el contenedor hello-world.
sudo docker run hello-world
El siguiente resultado confirma que ha instalado Docker Engine correctamente en el sistema operativo Debian.
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world b8dfde127a29: Pull complete Digest: sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
Permitir que usuarios no root ejecuten comandos de Docker
De forma predeterminada, los usuarios normales no tienen privilegios para ejecutar comandos de Docker porque el demonio de Docker usa un socket Unix propiedad del usuario root.
docker run hello-world
Salida:
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
Para permitir que los usuarios regulares de Linux ejecuten contenedores Docker sin el prefijo sudo, siga los pasos a continuación.
Cree un grupo llamado ventana acoplable si no existe.
sudo groupadd docker
Cree un usuario si es necesario. Reemplace itzgeek con su nombre de usuario.
sudo useradd -m -s /bin/bash itzgeek
Agrega el usuario al grupo docker.
sudo usermod -aG docker itzgeek
Cierre sesión y vuelva a iniciar sesión y, a continuación, ejecute los comandos de Docker sin el prefijo sudo.
docker run hello-world
Temas de interés
Temas básicos de Docker
1:Principales comandos importantes de Docker:trabajar con contenedores de Docker
2:Trabajar con imágenes de Docker:crear imágenes de Docker
3:Cómo crear imágenes de Docker con DockerFile
Temas avanzados de Docker
1:Cómo configurar el registro privado de Docker en CentOS 7
2:Cómo instalar y configurar Docker Swarm en CentOS 7
Conclusión
Eso es todo. Espero que haya aprendido a instalar Docker Engine en Debian 11.