
En esta publicación de blog, le enseñaremos cómo instalar Docker en un sistema Windows, Mac o Linux.
Las primeras versiones de Estibador para Windows usó Hyper-V como backend. Luego, en 2019, Docker se mudó a la Subsistema de Windows para Linux (WSL). Hyper-V todavía es compatible, pero solo por compatibilidad con versiones anteriores de Windows. En esta publicación, asumimos que usa Docker en combinación con WSL2. Para esto, necesita una instalación razonablemente actualizada de 64 bits de Windows 10/11 Home, Pro o Enterprise. Su computadora necesita al menos 4 GB de RAM. (Sin embargo, para el uso de desarrollo diario, recomendamos 16 GB). Además, las funciones de virtualización de la CPU deben estar habilitadas.
Puede descargar la última versión de Docker Desktop aquí: https://docs.docker.com/docker-for-windows/install.
La instalación suele ser absolutamente sencilla. ¡No es necesario configurar una sola opción! Durante el proceso de instalación, WSL2 se activa automáticamente si aún no ha sucedido en su computadora. Una vez que se haya completado el proceso de instalación, encontrará una entrada para iniciar Docker Desktop en el escritorio o en la Comenzar menú. Este programa brinda la oportunidad de realizar un recorrido introductorio inicial.
Alternativamente, puede usar PowerShell, cmd.exeo Windows Terminal para verificar que la instalación se realizó correctamente. Solo necesita ejecutar el versión acoplable comando, que proporciona una descripción general de los componentes de Docker instalados y sus números de versión. El resultado debería ser similar a la siguiente lista (abreviada):
docker version
Client:
Cloud integration: 1.0.14
Version: 20.10.6
API version: 1.41
...
Server: Docker Engine - Community
Engine:
Version: 20.10.6
API version: 1.41 (minimum version 1.12)
...
containerd:
Version: 1.4.4
runc:
Version: 1.0.0-rc93
docker-init:
Version: 0.19.0
Para probar que Docker realmente funciona, puede iniciar el sistema mini Linux, alpino, como contenedor. Usando silbidopuede probar si la conexión de red con el mundo exterior está funcionando. salida termina el contenedor, que también se elimina inmediatamente debido a la –rm opción:
docker run -it --rm alpine
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
540db60ca938: Pull complete
Digest: sha256:69e..cf8f
Status: Downloaded newer image for alpine:latest
ping -c 1 -q google.com
PING google.com (142.250.186.142): 56 data bytes
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 20.318/20.318/20.318 ms
exit
caja virtual: Anteriormente, la interacción entre Docker y VirtualBox en Windows constituía un problema. Hoy, sin embargo, los mayores problemas parecen haber sido superados. En nuestras pruebas, Docker con WSL2 y VirtualBox se ejecutaron de manera estable en paralelo.
Para instalar Docker Desktop, incluidas todas las herramientas que lo acompañan, debe descargar la versión correcta del archivo DMG (hay uno para CPU Intel y otro para ARM [“Apple Silicon”]) que coincida con la arquitectura de su CPU del siguiente sitio web: https://docs.docker.com/desktop/install/mac-install/.
Probamos muchos ejemplos en una Mac mini M1 para esta publicación. He aquí un breve resumen: ¡El soporte para la nueva arquitectura de CPU es excelente! Sin embargo, debido a que Docker usa una cantidad relativamente grande de RAM, ¡se recomienda encarecidamente un modelo con al menos 16 GB de RAM!
Para iniciar el proceso de instalación, simplemente debe mover el archivo de imagen a la Aplicaciones directorio. Cuando Docker se inicia por primera vez, debe proporcionar su contraseña nuevamente para que Docker pueda configurar varios controladores. Docker Desktop luego se ejecuta como un proceso en segundo plano y se hace notar en el panel por medio de un pequeño icono. Este ícono lo lleva al Docker Desktop (ver más abajo).
De forma predeterminada, Docker se iniciará automáticamente en el futuro. Docker Desktop verifica periódicamente si hay actualizaciones disponibles y, si es necesario, le pregunta si debe instalarlas. En el cuadro de diálogo de configuración, puede especificar cuánta memoria (tanto RAM como en el SSD) y cuántos núcleos de CPU puede usar Docker. Docker debe reiniciarse después de cada cambio en esta configuración. Cualquier contenedor en ejecución se terminará en el proceso.
Docker se desarrolló originalmente para su uso en Linux, lo que hace que sea bastante sorprendente que la instalación de Docker sea más fácil en Windows o macOS que en Linux. Sin embargo, hay un par de razones para las diversas variantes o el trabajo de configuración adicional requerido:
Independientemente de eso, solo se necesitan unos pocos comandos para que Docker se ejecute en la mayoría de las distribuciones de Linux.
¡Use las fuentes del paquete Docker siempre que sea posible! Algunas distribuciones de Linux proporcionan paquetes de Docker como parte de las fuentes de paquetes propias de la distribución. Sin embargo, estos paquetes de Docker suelen estar desactualizados. Independientemente de la distribución de Linux que utilice, siempre debe preferir los paquetes oficiales. Durante el proceso de instalación, se configura una fuente de paquete específica de Docker en cada caso desde la cual obtiene automáticamente todas las actualizaciones de Docker.
Docker Escritorio para Linux: Docker Desktop también está disponible para Linux desde mediados de 2022. Este paquete completo consta de todos los componentes necesarios de Docker y una GUI adicional como en macOS/Windows. Desafortunadamente, Docker Desktop en Linux tiene importantes inconvenientes. Específicamente, Docker ahora usa una máquina virtual para ejecutar contenedores Docker, como lo hace en macOS y Windows. Esto contradice el concepto lean de Docker, que ejecuta contenedores (casi) como procesos normales. Además, Docker Desktop para Linux no se puede usar cuando el propio Linux se ejecuta en una máquina virtual. (El resultado sería un anidamiento de máquinas virtuales: una para Linux y, dentro de ella, otra para Docker). Sorprendentemente, instalar Docker Desktop es incluso más engorroso que una instalación tradicional. En pocas palabras: la oferta relativamente nueva no nos convenció. Las pocas características adicionales de Docker Desktop son prescindibles y no compensan los inconvenientes. Puede encontrar más detalles sobre la instalación de Docker Desktop para Linux aquí: https://docs.docker.com/desktop/install/linux-install/.
Si es necesario, debe eliminar los paquetes instalados previamente de las fuentes de paquetes de Ubuntu:
apt remove docker docker-engine docker.io containerd runc
A continuación, primero debe instalar algunos paquetes base y luego usar rizo para descargar la clave para la nueva fuente del paquete Docker, que puede configurar usando el eco dominio. Después de instalar Docker a través de instalación apta, el programa se inicia automáticamente. (Todos los comandos deben ejecutarse con raíz privilegios Por lo tanto, debe poner sudo en el frente, o primero cambie a la raíz modo vía sudo-s.)
apt install apt-transport-https ca-certificates curl gpg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 \
signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" > \
/etc/apt/sources.list.d/docker.list
apt update
apt install docker-ce docker-ce-cli containerd.io
Consejo: En lugar de copiar y pegar los comandos anteriores, propensos a errores, debe copiarlos de la guía de instalación oficial: https://docs.docker.com/engine/install/ubuntu.
Si desea instalar una versión de prueba de Docker en lugar de la versión estable actual, debe reemplazar estable con prueba o borde en el eco comando dado anteriormente. A veces, esto también es necesario si usa una versión nueva de Ubuntu. A menudo, Docker tarda algunas semanas en proporcionar una versión estable de Docker para la última versión de Ubuntu.
Si usa el cortafuegos sin complicaciones (UFW) en Ubuntu (de manera predeterminada, no lo usa), los contenedores de Docker no pueden usar un puente de red. El culpable es la configuración predeterminada de UFW, que impide que se transfieran paquetes IP. Una solución a esto podría ser hacer el siguiente cambio en /etc/predeterminado/ufwy luego reinicie el firewall a través de ufw recargar:
# File /etc/default/ufw
...
DEFAULT_FORWARD_POLICY=”ACCEPT”
El proceso de instalación en Debian es similar al de Ubuntu; la única diferencia es el nombre del origen del paquete. (Esto afecta la eco comando.) Puede encontrar más detalles sobre esto aquí: https://docs.docker.com/engine/install/debian
Sorprendentemente, Docker también se ejecuta en Raspberry Pi. Sin embargo, la documentación de Docker indica que esta plataforma actualmente no está diseñada para uso en producción. Con respecto a la instalación en el sistema operativo Raspberry Pi, la mejor manera de proceder es utilizar un script proporcionado por Docker para este propósito:
curl -fsSL https://get.docker.com -o get-docker.sh
less get-docker.sh
sudo sh get-docker.sh
Solo probamos brevemente Docker en el sistema operativo Raspberry Pi y no notamos ningún problema en el proceso. Sin embargo, debido a su velocidad bastante limitada, no consideramos que Raspberry Pi sea una plataforma ideal para el desarrollo de software aparte de los proyectos electrónicos. Sin embargo, Docker puede ayudar a que los lenguajes de programación u otras herramientas se ejecuten fácilmente en versiones que el sistema operativo Raspberry Pi aún no proporciona o ya no proporciona, lo que definitivamente puede ser de gran ayuda para proyectos de retoques o aplicaciones de Internet de las cosas (IoT).
Si usa Fedora, RHEL 8 o una distribución compatible con ellos, como Oracle Linux 8, AlmaLinux o CentOS Stream, debería considerar usar Podman. Por supuesto, instalar Docker tampoco es un problema. Realizamos nuestras pruebas en Oracle Linux 8 y Fedora 34.
Antes de comenzar, debe asegurarse de que Podman y su sistema de compilación de contenedores Buildah estén desinstalados:
dnf remove podman buildah
Luego, debe configurar una nueva fuente de paquete e instalar Docker usando el yum-configmanager desde el yum-utiles paquete. Los siguientes comandos son válidos para RHEL y Co:
dnf install dnf-plugins-core
dnf config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io
Los mismos comandos se pueden usar en Fedora. Sin embargo, necesitará una fuente de paquete diferente. Por esta razón, el administrador de configuración dnf El comando debe ser cambiado de la siguiente manera:
dnf config-manager --add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
A diferencia de la instalación en Debian/Ubuntu, Docker no se iniciará automáticamente de inmediato aquí, pero los siguientes dos comandos pueden ayudarlo en este contexto:
systemctl enable --now docker.service
systemctl enable --now containerd.service
Las instrucciones de instalación para otras distribuciones de Linux o para versiones de prueba de Docker se pueden encontrar aquí: https://docs.docker.com/engine/install/.
Para probar si Docker se está ejecutando, debe ejecutar el versión acoplable dominio. Debería mostrar los números de versión del cliente Docker y del servidor Docker. Mediante el uso diarioctl -u ventana acoplablepuede leer los mensajes de registro del demonio Docker.
Dependiendo de la versión del kernel, el demonio de Docker puede proporcionar advertencias de que ciertas funciones no están disponibles:
journalctl -u docker | grep warning
warning: Your kernel does not support CPU realtime scheduler
warning: Your kernel does not support cgroup blkio weight
warning: Your kernel does not support cgroup blkio
weight_device
Puede ignorar con seguridad estas advertencias. Las funciones que faltan le darían a Docker un control más preciso sobre cómo se ejecutan los contenedores. En una computadora de desarrollo, estas funciones son completamente irrelevantes. Incluso en el uso de producción, las funciones son solo de importancia secundaria.
De forma predeterminada, casi todos los comandos de Docker deben ejecutarse con raíz privilegios en Linux. En lugar de ejecución de la ventana acoplable … tienes que correr ejecutar sudo docker…. El siguiente comando proporciona una solución sencilla a esto y agrega el usuario especificado al estibador grupo:
sudo usermod -aG docker <username>
El cambio de grupo no se hará efectivo hasta después de un nuevo inicio de sesión. Sin embargo, debe tener en cuenta que la asignación de grupo aparentemente inofensiva asigna indirectamente raíz privilegios al usuario en cuestión. En lo que respecta a la seguridad, es mejor ejecutar contenedores Docker completamente sin raíz privilegios
Nota del editor: Esta publicación ha sido adaptada de una sección del libro. Docker: Guía práctica para desarrolladores y equipos DevOps de Bernd Öggl y Michael Kofler.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073