GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar y configurar docker en Debian 11

Docker es una plataforma de contenedorización de código abierto. Permite a los desarrolladores empaquetar aplicaciones en contenedores:componentes ejecutables estandarizados que combinan el código fuente de la aplicación con las bibliotecas del sistema operativo (SO) y las dependencias necesarias para ejecutar ese código en cualquier entorno.

Docker es un conjunto de productos de plataforma como servicio que utilizan la virtualización a nivel del sistema operativo para entregar software en paquetes denominados contenedores. Los contenedores están aislados unos de otros y agrupan su propio software, bibliotecas y archivos de configuración; pueden comunicarse entre sí a través de canales bien definidos.

Compruebe también estos enlaces:

  • Cómo instalar y usar Docker en Ubuntu 20.04
  • Cómo instalar y configurar docker en Centos 8
  • Cómo instalar y configurar docker en Fedora 34/35
  • Introducción a Docker Compose con ejemplos
  • Docker como agente de compilación:ejecute compilaciones de Jenkins en Docker

Requisitos

Para seguir, asegúrese de tener:

  • Un sistema Debian 11 actualizado
  • Acceso a Internet desde el sistema
  • Acceso raíz o usuario con acceso sudo
  • Conocimiento de terminal Linux

Tabla de contenido

  1. Asegúrese de que los paquetes de su sistema estén actualizados
  2. Desinstalar versiones anteriores si las hay
  3. Instalar el motor docker usando el repositorio
  4. Instalar Docker Engine desde un paquete
  5. Instalar usando el script de conveniencia
  6. Verificar instalación
  7. Ejecutar el comando Docker sin Sudo
  8. Desinstalar docker cuando ya no se necesita

1. Asegúrese de que los paquetes de su sistema estén actualizados

Antes de continuar, asegurémonos de que sus paquetes estén actualizados

sudo apt update
sudo apt upgrade -y

2. Desinstalar versiones anteriores si las hay

Los paquetes que proporcionan versiones anteriores de Docker son dockerdocker.iodocker-engine .
Utilicemos este comando para asegurarnos de que estos paquetes no existen en nuestro sistema:

sudo apt-get remove docker docker-engine docker.io containerd runc

Está bien si apt-get informa que ninguno de estos paquetes está instalado.

Instalando ventana acoplable

Puede instalar Docker Engine de diferentes maneras, según sus necesidades:

  • Puede configurar los repositorios de docker e instalar docker usando apt
  • Puedes descargar los paquetes DEB e instalarlos manualmente
  • Puede optar por utilizar scripts de conveniencia automatizados para instalar Docker

3. Instale el motor docker usando el repositorio

En un host nuevo, los repositorios de Docker no existen. Por primera vez en una nueva máquina host, debe configurar el repositorio de Docker. Luego, puede instalar y actualizar Docker desde el repositorio.

Instalemos los siguientes paquetes para permitir que apt use un repositorio sobre HTTPS:

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

Agregue la clave GPG oficial de Docker:

 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gp

Utilice el siguiente comando para configurar el repositorio estable. Para añadir el nocturnoprueba repositorio, añade la palabra nightlytest (o ambos) después de la palabra stable en los comandos a continuación.

echo \
  "deb [arch=$(dpkg --print-architecture) 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

Instalar el motor Docker

Actualice el índice del paquete apt ya que agregamos un nuevo repositorio:

sudo apt-get update

Ahora instalemos la última versión de Docker Engine y containerd usi

sudo apt-get install docker-ce docker-ce-cli containerd.io

Opcional:Instalación de una versión específica

Si tiene requisitos que requieren una versión específica, puede hacerlo. Para instalar una versión específica:
1. Enumere las versiones disponibles en su repositorio:

$ sudo apt-cache madison docker-ce
 docker-ce | 5:20.10.9~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.8~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.7~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
 docker-ce | 5:20.10.6~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages

Ahora puede instalar una versión específica utilizando la cadena de versión de la segunda columna, por ejemplo, 5:20.10.7~3-0~debian-bullseye .

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

Ejemplo:

sudo apt-get install docker-ce=5:20.10.7~3-0 docker-ce-cli=5:20.10.7~3-0 containerd.io

Una vez finalizada la instalación, el demonio Docker se inicia automáticamente.

4. Instale el motor docker desde un paquete

Si no puede usar el repositorio de Docker para instalar Docker Engine, puede descargar .deb para su lanzamiento e instálelo manualmente. Debe descargar un archivo nuevo cada vez que desee actualizar Docker.

Vaya a https://download.docker.com/linux/debian/dists/, elija su versión de Debian – (Bullseye), luego busque pool/stable/ , elige amd64armhf , o arm64 y descargue el archivo .deb para la versión de Docker Engine que desea instalar.

Instale Docker Engine, cambiando la ruta a continuación a la ruta donde descargó el paquete de Docker.

 sudo dpkg -i /path/to/package.deb

Una vez finalizada la instalación, el demonio Docker se inicia automáticamente.

5. Instalar usando el script de conveniencia

Docker proporciona una secuencia de comandos conveniente en get.docker.com para instalar Docker en entornos de desarrollo de forma rápida y no interactiva.

Este ejemplo descarga el script de get.docker.com y lo ejecuta para instalar la última versión estable de Docker en Linux:

 curl -fsSL https://get.docker.com -o get-docker.sh
 sudo sh get-docker.sh

6. Verificar instalación

Tras la instalación, Docker se ejecutará como un demonio. Para comprobar que la ventana acoplable se está ejecutando, utilizamos la ventana acoplable systemctl status docker comando:

$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-10-19 04:10:32 UTC; 4min 16s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 13456 (dockerd)
      Tasks: 7
     Memory: 39.0M
        CPU: 265ms
     CGroup: /system.slice/docker.service
             └─13456 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789071579Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789278242Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/container>
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789447226Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.059851510Z" level=info msg="Loading containers: start."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.267528805Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemo>
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.337295417Z" level=info msg="Loading containers: done."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363462993Z" level=info msg="Docker daemon" commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363783617Z" level=info msg="Daemon has completed initialization"

El Active: active (running) muestra que la ventana acoplable se inició correctamente.

Podemos ejecutar un hello-world imagen para probar que la ventana acoplable funciona como se esperaba:

 sudo docker run hello-world

Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando se ejecuta el contenedor, imprime un mensaje informativo y sale.

Obtuve este resultado, mostrando que funciona bien:

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

7. Ejecutar el comando Docker sin Sudo

De forma predeterminada, el comando docker solo puede ejecutarlo el usuario raíz o un usuario del grupo docker, que se crea automáticamente durante el proceso de instalación de Docker. Si intenta ejecutar el comando docker sin el prefijo sudo o sin estar en el grupo docker, obtendrá un resultado como este:

$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

Si desea evitar escribir sudo cada vez que ejecuta el comando docker, agregue su nombre de usuario al grupo docker:

sudo usermod -aG docker ${USER}

Para aplicar la nueva pertenencia al grupo, cierre sesión en el servidor y vuelva a iniciarla, o escriba lo siguiente:

sudo su - ${USER}

Se le pedirá que ingrese su contraseña de usuario para continuar.

Confirme que su usuario ahora está agregado al grupo docker escribiendo:

id -nG

Veo esto, confirmando que ahora pertenezco al grupo docker

$ id -nG
admin docker

Ahora puedo hacer docker sin sudo:
Probemos ejecutando image.

$ docker run --rm -it --name alpine --entrypoint /bin/sh alpine:3
Unable to find image 'alpine:3' locally
3: Pulling from library/alpine
a0d0a0d46f8b: Pull complete
Digest: sha256:e1c082e3d3c45cccac829840a25941e679c25d438cc8412c2fa221cf1a824e6a
Status: Downloaded newer image for alpine:3
/ #

¡Hemos instalado Docker con éxito en nuestro sistema!

8. Desinstalar Docker cuando ya no se necesita

Para borrar completamente el motor Docker del sistema, debemos desinstalar los paquetes Docker Engine, CLI y Containerd:

 sudo apt-get purge docker-ce docker-ce-cli containerd.io -y

Las imágenes, los contenedores, los volúmenes o los archivos de configuración personalizados de su host no se eliminan automáticamente. Para eliminar todas las imágenes, contenedores y volúmenes:

 sudo rm -rf /var/lib/docker
 sudo rm -rf /var/lib/containerd

Debe eliminar cualquier archivo de configuración editado manualmente.

Conclusión

En esta guía logramos instalar docker en nuestro sistema Debian 11.


Debian
  1. Cómo instalar y usar Docker en Debian 9

  2. Cómo instalar Docker y Docker Compose en Debian 11

  3. Cómo instalar y configurar Mariadb 10 en Debian 11

  4. Cómo instalar y configurar MongoDB 5 en Debian 11

  5. Cómo instalar y configurar Redis 6 en Debian 11

Cómo instalar Docker en Debian 11

Cómo instalar y configurar RabbitMQ en Debian 11

Cómo instalar y configurar Memcached en Debian 11

Cómo instalar Docker en Debian 10

Cómo instalar y configurar Git en Debian 11

¿Cómo instalar y configurar Apache en Debian 11?