# 2.- Instalación de Docker.

# Caso práctico

Jonny Goldstein (CC BY)

Juan y Eva ya han empezado a familiarlizarse con Docker y están interesados en experimentar con esta tecnología para mejorar la eficiencia y la portabilidad de sus aplicaciones. Deciden instalar Docker en uno de sus servidores de prueba para familiarizarse con esta herramienta.

Primero, deberán asegurarse de que su servidor cumpla con los requisitos mínimos de Docker. Verifican la documentación oficial de Docker y se aseguran de que su sistema operativo sea compatible y esté actualizado.

Proceden a instalar Docker en su servidor siguiendo las instrucciones oficiales para su sistema operativo y realizan las comprobaciones oportuneas. A partir de aquí, Juan y Eva pueden seguir experimentando con Docker, aprendiendo a construir y administrar sus propias imágenes y adaptando sus aplicaciones para ejecutarse en contenedores.

freepng.es (CC0)

#### Requisitos Mínimos

Los requisitos mínimos para usar Docker en sistemas operativos Windows y Linux varían según la versión específica de Docker y el sistema operativo en cuestión. Veamos con un poco más de detalle cuales son los mínimos generales para ejecutar Docker en Windows y Linux:

Docker Desktop para Windows:

- Windows 10 Pro, Enterprise o Education (64 bits) con la actualización de aniversario (versión 1607) o posterior.
- Virtualización de hardware habilitada en la BIOS.
- Microsoft Hyper-V instalado y habilitado.

Docker Enterprise Edition (EE) para Windows Server:

- Windows Server 2016 o posterior.
- Procesador de 64 bits.
- Virtualización de hardware habilitada en la BIOS.

Docker para Linux:

Los requisitos varían según la distribución de Linux. En general, Docker es compatible con las principales distribuciones de Linux de 64 bits, como Ubuntu, Debian, CentOS, Fedora y otras. Algunos requisitos comunes incluyen:

- Procesador de 64 bits.
- Kernel de Linux con una versión mínima compatible (por ejemplo, 3.10 para Docker Engine 17.06 o 4.4 para Docker Engine 19.03). Consulta la documentación de Docker para la versión específica y la distribución de Linux que estás utilizando.
- Paquetes adicionales como iptables, curl, lsb-release, ca-certificates y otros pueden ser necesarios dependiendo de la distribución de Linux y la versión de Docker.

Es importante revisar la documentación oficial de Docker para obtener información detallada sobre los requisitos y las instrucciones de instalación específicas para nuestro sistema operativo y la versión de Docker que deseamos instalar. La documentación oficial de Docker se encuentra en: https://docs.docker.com/engine/install/

#### Guía paso a paso para instalar Docker Desktop en Ubuntu (Linux)

Veamos los pasos que debemos seguir para realizar la instalación de nuestro cliente Docker en nuestra distribución Linux:

## Actualizamos los paquetes del sistema

Abrimos una terminal y ejecutamos el siguiente comando:

    sudo apt-get update

## Instalamos las dependencias necesarias

    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

## Agregamos la clave GPG oficial de Docker

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

## Añadimos el respositorio de Docker

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

## Volvemos a actualizar los paquetes

    sudo apt-get update

## Instalamos Docker

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

## Verificamos la instalación de Docker

    sudo systemctl status docker

Deberíamos ver un mensaje que indica que Docer está activo y en funcionamiento tal y como se muestra en la imagen:

Manuel J. Rodríguez (Elaboración propia). Instalación activa de Docker (Dominio público)

## Configuración de Docker sin privilegios de sudo (opcional)

Por defecto, Docker requiere privilegios de administrador para ejecutarse. Si prefieres no utilizar sudo cada vez que ejecutes un comando de Docker, puedes agregar tu usuario al grupo "docker" con el siguiente comando:

    sudo usermod -aG docker $USER

A continuación, cierra sesión y vuelve a iniciar sesión para que los cambios surtan efecto. Otra opción para no tener que cerrar nuestra sesión es ejecutar el siguiente comando:

    newgrp docker

## Probamos nuestra instalación de Docker

Para asegurarnos de que Docker esté funcionando correctamente, ejecutamos el siguiente comando, que descargará y ejecutará la imagen de prueba hello-world:

    docker run hello-world

Manuel J. Rodríguez (Elaboración propia). Comprobación de funcionamiento de Docker (Dominio público)

## Configuramos el servicio de Docker para que se inicie automáticamente

    sudo systemctl enable docker

Ahora ya podemos comenzar a explorar y trabajar con Docker, crear nuestras propias imágenes y ejecutar aplicaciones en contenedores.

La instalación de Docker y el aprendizaje de sus primeros pasos son fundamentales para comenzar a aprovechar sus ventajas en el desarrollo y despliegue de aplicaciones. Afortunadamente, hay muchos recursos disponibles en línea que te ayudarán a instalar Docker y a familiarizarte con sus conceptos básicos:

- Documentación oficial de Docker: La documentación oficial es el mejor lugar para comenzar. Incluye información detallada sobre la instalación de Docker en diferentes sistemas operativos y tutoriales para principiantes. https://docs.docker.com/get-started/
- Docker Hub: Docker Hub es un repositorio en línea de imágenes de contenedores. Aquí puedes encontrar imágenes oficiales y de la comunidad para una amplia variedad de aplicaciones y sistemas operativos. https://hub.docker.com/
- Docker Labs: Docker Labs es un repositorio en GitHub que contiene una colección de tutoriales y ejemplos prácticos para aprender a usar Docker y sus herramientas relacionadas. https://github.com/docker/labs
- Docker Playground: Docker Playground es un entorno interactivo en línea que te permite experimentar con Docker sin tener que instalarlo en tu propio sistema. https://labs.play-with-docker.com/
- DockerCon: DockerCon es una conferencia anual organizada por Docker, Inc. donde se presentan las últimas novedades y casos de uso de la plataforma Docker. Los vídeos de las presentaciones están disponibles en línea y son una excelente fuente de información. https://www.docker.com/dockercon/
- Stack Overflow: Stack Overflow es un foro de preguntas y respuestas para desarrolladores. Aquí puedes encontrar soluciones a problemas comunes y hacer preguntas específicas sobre Docker y su uso. https://stackoverflow.com/questions/tagged/docker
- Docker Community: La comunidad de Docker es muy activa y ofrece una gran cantidad de recursos en línea, como blogs, foros y canales de comunicación en tiempo real (por ejemplo, Slack o Discord). Estos recursos pueden ser útiles para resolver problemas, compartir experiencias y aprender de otros usuarios de Docker. https://www.docker.com/community

Estos recursos te ayudarán a instalar Docker y a aprender sus primeros pasos. Además, te permitirán profundizar en los conceptos y técnicas avanzadas de Docker y mantenerte actualizado con las últimas novedades y características de la plataforma.

# Recomendación

Aunque Docker es compatible con una variedad de sistemas operativos, incluyendo Windows y macOS, hay varias razones por las que utilizar Docker en un entorno Linux es a menudo la opción recomendada:

1. Compatibilidad nativa: Docker fue desarrollado originalmente para Linux y se basa en características del kernel de Linux, como cgroups y namespaces, para aislar los contenedores. Como resultado, Docker funciona de forma nativa y eficiente en Linux.
2. Menor sobrecarga: En Windows y macOS, Docker debe ejecutarse dentro de una máquina virtual Linux ligera para proporcionar el entorno necesario para los contenedores. Esto puede resultar en un rendimiento ligeramente inferior y en un uso adicional de recursos en comparación con Docker ejecutándose directamente en un sistema Linux.
3. Mayor consistencia: Si estás desarrollando una aplicación que se ejecutará en un entorno de producción basado en Linux, tiene sentido desarrollar y probar la aplicación en un entorno similar. Usar Docker en Linux te ayuda a garantizar que la aplicación se comportará de la misma manera en desarrollo y en producción.
4. Mayor soporte y comunidad: Dado que Docker fue creado en Linux, la comunidad de Docker en Linux es más grande y activa. Esto significa que es más probable que encuentres soluciones y soporte para problemas que puedas encontrar.
5. Mayor flexibilidad para administrar contenedores y recursos: Las herramientas y capacidades de Linux para la gestión de procesos, redes y recursos del sistema suelen ser más potentes y flexibles que las de otros sistemas operativos.

Por estas razones, si tienes la opción, utilizar Docker en un entorno Linux es a menudo una buena elección. Sin embargo, eso no quiere decir que no puedas usar Docker con éxito en Windows o macOS, especialmente si estás comenzando a aprender Docker o si estás desarrollando aplicaciones que se ejecutarán en estos sistemas operativos.

# Autoevaluación

# Pregunta

¿Cuáles son los requisitos mínimos para instalar Docker Desktop en Linux?

# Respuestas

Opción 1

a) Procesador de 64 bits, Kernel de Linux 3.10, paquetes iptables y curl.

Opción 2

b) Procesador de 64 bits, Kernel de Linux 4.4, paquetes iptables y curl.

Opción 3

c) Docker Desktop no está disponible para Linux, solo para Windows y macOS.

Opción 4

d) Windows 10 Pro, Enterprise o Education (64 bits), Virtualización de hardware habilitada, Microsoft Hyper-V instalado y habilitado.

# Retroalimentación

Docker Desktop no está disponible para Linux. En su lugar, se utiliza Docker Engine para Linux.

# Solución

1. Incorrecto
2. Incorrecto
3. Correcto
4. Incorrecto

Creado con eXeLearning (Ventana nueva)