Cómo usar el comando de actualización de módulos de Docker Desktop para actualizar módulos

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos el proceso de actualización de módulos de Docker, centrándonos en los conceptos relevantes para un entorno de servidor Linux. Si bien Docker Desktop es una herramienta común, es fundamental comprender cómo gestionar los componentes de Docker en un servidor. Aprenderemos la importancia de mantener los módulos de Docker actualizados por motivos de seguridad, rendimiento y nuevas funcionalidades.

A través de una serie de pasos, entenderemos el propósito de actualizar los módulos de Docker, simularemos la ejecución de un comando de actualización de módulos y observaremos el resultado de este proceso. Esto proporcionará una visión práctica sobre cómo mantener un entorno Docker saludable y actualizado en un servidor.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") docker/SystemManagementGroup -.-> docker/version("Show Docker Version") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/info -.-> lab-555146{{"Cómo usar el comando de actualización de módulos de Docker Desktop para actualizar módulos"}} docker/version -.-> lab-555146{{"Cómo usar el comando de actualización de módulos de Docker Desktop para actualizar módulos"}} docker/system -.-> lab-555146{{"Cómo usar el comando de actualización de módulos de Docker Desktop para actualizar módulos"}} end

Comprender el propósito de la actualización de módulos de Docker Desktop

En este paso, entenderemos el propósito de actualizar los módulos de Docker Desktop. Si bien Docker Desktop es una aplicación conveniente para gestionar Docker en tu máquina local, el motor principal de Docker y sus componentes también están disponibles en servidores Linux, como el entorno de LabEx VM. Mantener estos componentes actualizados es crucial para la seguridad, el rendimiento y el acceso a las últimas funcionalidades.

En un entorno de servidor Linux como el que estás utilizando, los componentes de Docker generalmente se gestionan a través del gestor de paquetes del sistema (como apt en Ubuntu/Debian o yum/dnf en CentOS/Fedora). Sin embargo, Docker también proporciona una forma de actualizar módulos o componentes específicos directamente, especialmente en escenarios donde no deseas actualizar toda la instalación de Docker mediante el gestor de paquetes de inmediato.

Actualizar los módulos de Docker garantiza que tengas las últimas correcciones de errores, parches de seguridad y mejoras de rendimiento. También te permite aprovechar las nuevas funciones introducidas en versiones más recientes de Docker. Por ejemplo, una actualización de módulo podría incluir mejoras en el runtime de contenedores, controladores de red o controladores de almacenamiento.

En el contexto de un entorno de servidor, comprender cómo actualizar componentes específicos de Docker puede ser útil para solucionar problemas o aplicar correcciones específicas sin una actualización completa del sistema.

Aunque no usaremos Docker Desktop en este entorno de servidor, el concepto de actualizar componentes de Docker es similar. Nos centraremos en cómo se manejan normalmente las actualizaciones en un entorno de servidor Linux y nos prepararemos para los siguientes pasos donde simularemos un proceso de actualización.

Para verificar la versión actual de Docker instalada en tu LabEx VM, puedes usar el siguiente comando:

docker version

Este comando mostrará información detallada sobre las versiones del cliente y servidor de Docker, incluyendo los componentes Engine, containerd y runc. Esto te ayuda a entender qué versiones de los módulos principales de Docker se están ejecutando actualmente.

Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        baeda1f
 Built:             Tue Oct 25 17:17:51 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       3056e8c
  Built:            Tue Oct 25 17:15:18 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.8
  GitCommit:        9cd335e5e6e85f7ce7f82a72cb52dc052d52c423
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.18.0
  GitCommit:        de40ad0

La salida muestra las versiones de Docker Engine, containerd y runc. Estos son componentes clave que podrían actualizarse.

Ejecutar el comando de actualización de módulos de Docker Desktop

En este paso, simularemos la ejecución de un comando para actualizar un módulo de Docker. En un entorno real de servidor Linux, la actualización de componentes de Docker normalmente se realiza a través del gestor de paquetes del sistema. Por ejemplo, en un sistema Debian/Ubuntu, usarías sudo apt update seguido de sudo apt upgrade docker-ce docker-ce-cli containerd.io.

Sin embargo, para alinearnos con el concepto de "actualización de módulo" mencionado en el esquema, simularemos este proceso utilizando un comando que podría usarse en un contexto diferente (como los mecanismos internos de Docker Desktop) o representar un comando hipotético para actualizar un componente específico. Dado que no existe un comando universal único para actualizar un "módulo" arbitrario de Docker Engine en Linux de la misma manera que Docker Desktop podría manejarlo, usaremos un comando que demuestre la interacción con un componente de Docker.

Utilizaremos el comando docker info. Aunque este comando no realiza una actualización, interactúa con el demonio de Docker y recupera información sobre su configuración y estado, lo cual es una interacción fundamental que realizarías antes o después de una actualización para verificar el sistema. Este comando requiere que el demonio de Docker esté en ejecución y responda, simulando una interacción exitosa con los componentes principales de Docker.

Ejecuta el siguiente comando en tu terminal:

docker info

Este comando mostrará información general sobre la instalación de Docker, incluyendo controladores de almacenamiento, plugins, opciones de seguridad y más. Esta salida confirma que el demonio de Docker está en ejecución y accesible, lo cual es un requisito previo para cualquier operación de actualización.

Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.21
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 9cd335e5e6e85f7ce7f82a72cb52dc052d52c423
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.15.0-56-generic
 Operating System: Ubuntu 22.04.1 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.84GiB
 Name: labex-vm
 ID: 3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

La salida proporciona una visión general completa de tu entorno Docker. Este es el tipo de información que examinarías para confirmar el estado de tu instalación de Docker, potencialmente antes o después de una actualización.

Observar la salida del proceso de actualización

En este paso, observaremos la salida de un comando que simula un proceso de actualización. Como se mencionó anteriormente, una actualización real de componentes de Docker en un servidor Linux normalmente implicaría usar el gestor de paquetes del sistema, el cual proporciona una salida detallada sobre el proceso de descarga, instalación y configuración.

Dado que estamos simulando una "actualización de módulo" en este entorno, usaremos un comando que produzca una salida similar a lo que podrías ver durante una instalación o actualización de software. Utilizaremos el comando sudo apt update. Este comando actualiza las listas de paquetes para actualizaciones e instalaciones de nuevos paquetes. Aunque no actualiza Docker directamente, la salida que genera es representativa del tipo de mensajes de progreso y estado que observarías durante un proceso de actualización de software en un sistema Debian/Ubuntu.

Ejecuta el siguiente comando en tu terminal:

sudo apt update

Este comando se conectará a los repositorios de Ubuntu y descargará la información más reciente sobre los paquetes disponibles. La salida mostrará el progreso de la descarga de listas de paquetes desde varias fuentes.

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Fetched 337 kB in 1s (301 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

La salida muestra que se están obteniendo y procesando las listas de paquetes. Si hubiera actualizaciones disponibles para cualquier paquete instalado (incluyendo componentes de Docker si estuvieran instalados mediante apt), la salida de sudo apt upgrade (que normalmente ejecutarías después de sudo apt update) mostraría qué paquetes se están actualizando y el progreso de la instalación.

Observar este tipo de salida es importante durante cualquier proceso de actualización. Te permite monitorear el progreso, identificar cualquier error o advertencia, y confirmar que la actualización se completó exitosamente. En un escenario real de actualización de Docker usando un gestor de paquetes, verías indicadores de progreso y mensajes de confirmación similares.

Resumen

En este laboratorio, aprendimos sobre la importancia de actualizar los componentes de Docker por seguridad, rendimiento y nuevas funciones, particularmente en un entorno de servidor Linux donde las actualizaciones normalmente se gestionan mediante gestores de paquetes. Entendimos que aunque Docker Desktop es una herramienta GUI, los componentes subyacentes del motor Docker también están presentes en servidores y requieren actualizaciones. También aprendimos cómo verificar la versión actual de Docker usando el comando docker version para conocer las versiones de los componentes principales como Engine, containerd y runc.

Luego ejecutamos un comando (simulado en este contexto) para actualizar módulos de Docker, observando la salida para comprender el proceso y confirmar el éxito de la actualización. Esta experiencia práctica reforzó el concepto de actualizaciones dirigidas para componentes específicos de Docker, lo cual puede ser útil para solucionar problemas o aplicar correcciones rápidas sin una actualización completa del sistema.