Cómo instalar Docker y Docker Compose en Debian 11
Docker es una plataforma gratuita y de código abierto para desarrollar, enviar y ejecutar aplicaciones en un entorno de contenedores. Te permite separar tu aplicación de tu infraestructura. Esto hará que sea más fácil, sencillo y seguro construir, desplegar y gestionar contenedores. Docker está diseñado para crear un entorno de desarrollo local.
Si quieres crear más de un contenedor para tu aplicación, debes utilizar Docker-compose. Docker-compose es una herramienta que sirve para definir y compartir aplicaciones con varios contenedores. Con Docker compose, puedes utilizar el archivo YAML para definir todos los servicios y ejecutarlos a la vez mediante un simple comando.
En este tutorial, te mostraremos cómo instalar Docker y Docker compose en un sistema Debian 11.
Requisitos previos
- Un servidor que ejecute Debian 11.
- Una contraseña de root configurada en el servidor.
Cómo empezar
En primer lugar, se recomienda actualizar la caché de los paquetes del sistema a la última versión. Puedes actualizarlos utilizando el siguiente comando:
apt-get update -y
Una vez que hayas terminado, instala otras dependencias necesarias utilizando el siguiente comando:
apt-get install apt-transport-https software-properties-common ca-certificates curl gnupg lsb-release -y
Instalar Docker
Por defecto, la última versión de Docker no está incluida en el repositorio oficial de Debian 11. Así que tendrás que añadir el repositorio de Docker CE a la APT. Puedes añadirlo con el siguiente comando:
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Una vez añadido el repositorio de Docker, actualiza el repositorio e instala Docker CE con el siguiente comando:
apt-get update -y apt-get install docker-ce docker-ce-cli -y
Tras la instalación, verifica la versión de Docker CE con el siguiente comando:
docker version
Deberías obtener la siguiente salida:
Client: Docker Engine - Community Version: 20.10.8 API version: 1.41 Go version: go1.16.6 Git commit: 3967b7d Built: Fri Jul 30 19:54:22 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.8 API version: 1.41 (minimum version 1.12) Go version: go1.16.6 Git commit: 75249d8 Built: Fri Jul 30 19:52:31 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.9 GitCommit: e25210fe30a0a703442421b0f60afac609f950a3 runc: Version: 1.0.1 GitCommit: v1.0.1-0-g4144b63 docker-init: Version: 0.19.0 GitCommit: de40ad0
Gestionar los servicios Docker
Puedes gestionar el servicio Docker fácilmente utilizando la utilidad systemd.
Para iniciar un servicio Docker, ejecuta el siguiente comando:
systemctl start docker
Para reiniciar un servicio Docker, ejecuta el siguiente comando:
systemctl restart docker
Para detener un servicio Docker, ejecuta el siguiente comando:
systemctl stop docker
Para que el servicio Docker se inicie al reiniciar el sistema, ejecuta el siguiente comando:
systemctl enable docker
Para comprobar el estado de Docker, ejecuta el siguiente comando:
systemctl status docker
Deberías ver el estado de Docker en la siguiente salida:
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-09-10 07:19:35 UTC; 27s ago TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 29018 (dockerd) Tasks: 7 Memory: 32.6M CPU: 407ms CGroup: /system.slice/docker.service ??29018 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809035575Z" level=info msg="scheme \"unix\" not registered, fallback to def> Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809219999Z" level=info msg="ccResolverWrapper: sending update to cc: {[{uni> Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.809410545Z" level=info msg="ClientConn switching balancer to \"pick_first\"> Sep 10 07:19:34 debian11 dockerd[29018]: time="2021-09-10T07:19:34.897972507Z" level=info msg="Loading containers: start." Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.186940748Z" level=info msg="Default bridge (docker0) is assigned with an IP> Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.298681937Z" level=info msg="Loading containers: done." Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.356364773Z" level=info msg="Docker daemon" commit=75249d8 graphdriver(s)=ov> Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.357524464Z" level=info msg="Daemon has completed initialization" Sep 10 07:19:35 debian11 systemd[1]: Started Docker Application Container Engine. Sep 10 07:19:35 debian11 dockerd[29018]: time="2021-09-10T07:19:35.401626151Z" level=info msg="API listen on /run/docker.sock"
Ejecutar un contenedor con Docker
Puedes utilizar el comando docker run para descargar cualquier imagen y ejecutarla dentro del contenedor.
Por ejemplo, ejecuta el siguiente comando para descargar la imagen de Debian y ejecutar un contenedor:
docker run --rm -it --name test debian:latest /bin/sh
Deberías obtener la siguiente salida:
Unable to find image 'debian:latest' locally latest: Pulling from library/debian 955615a668ce: Pull complete Digest: sha256:08db48d59c0a91afb802ebafc921be3154e200c452e4d0b19634b426b03e0e25 Status: Downloaded newer image for debian:latest #
Ejecuta el siguiente comando para salir del contenedor Debian
#exit
Instalar Docker Compose
Por defecto, Docker Compose no está disponible en el repositorio por defecto de Debian 11. Así que tendrás que descargar el binario de Docker compose desde Github.
Ejecuta el siguiente comando para descargar el binario de Docker compose:
curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-Linux-x86_64 | cut -d '"' -f 4 | wget -qi -
Una vez completada la descarga, establece el permiso de ejecución para el archivo descargado y muévelo a la ruta del sistema mediante el siguiente comando:
chmod +x docker-compose-Linux-x86_64 mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
A continuación, verifica la versión de Docker compose mediante el siguiente comando:
docker-compose version
Deberías ver la siguiente salida:
docker-compose version 1.29.2, build 5becea4c docker-py version: 5.0.0 CPython version: 3.7.10 OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
Comandos de Docker Compose
Para ejecutar un archivo Docker compose, ejecuta el siguiente comando:
docker-compose up -d
Para detener todos los contenedores en ejecución, ejecuta el siguiente comando:
docker-compose down
Para poner en pausa y deshacer el contenedor en ejecución, ejecuta el siguiente comando:
docker-compose pause docker-compose unpause
Para listar todos los contenedores en ejecución, ejecuta el siguiente comando:
docker-compose ps
Para comprobar los registros de los servicios en ejecución, ejecuta el siguiente comando:
docker-compose logs
Conclusión
Enhorabuena! has instalado con éxito Docker y Docker Compose en Debian 11. Ahora puedes construir, enviar y ejecutar tu aplicación utilizando Docker y Docker Compose.