Cómo usar el comando docker plugin disable para deshabilitar un complemento (plugin)

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, aprenderá cómo administrar complementos (plugins) de Docker centrándose en el comando docker plugin disable. Comenzará listando los complementos actualmente instalados para entender su estado. A continuación, practicará deshabilitar un complemento y observará el efecto de esta acción.

El laboratorio también cubrirá cómo verificar que un complemento se ha deshabilitado correctamente. Opcionalmente, explorará escenarios en los que la deshabilitación de un complemento podría estar restringida, como cuando tiene referencias activas, y cómo potencialmente forzar la deshabilitación de un complemento activo.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") subgraph Lab Skills docker/ls -.-> lab-555188{{"Cómo usar el comando docker plugin disable para deshabilitar un complemento (plugin)"}} docker/rm -.-> lab-555188{{"Cómo usar el comando docker plugin disable para deshabilitar un complemento (plugin)"}} docker/volume -.-> lab-555188{{"Cómo usar el comando docker plugin disable para deshabilitar un complemento (plugin)"}} end

Listar complementos (plugins) instalados

En este paso, aprenderá cómo listar los complementos (plugins) de Docker que están actualmente instalados en su sistema. Los complementos (plugins) de Docker extienden la funcionalidad de Docker, proporcionando características como gestión de volúmenes, redes y registro.

Para listar los complementos instalados, puede utilizar el comando docker plugin ls. Este comando le mostrará una lista de todos los complementos instalados, junto con su estado (habilitado o deshabilitado) y otra información relevante.

Ejecutemos el comando para ver los complementos instalados.

docker plugin ls

Debería ver una salida similar a esta, aunque los complementos específicos listados pueden variar según su entorno:

ID    NAME    DESCRIPTION    ENABLED

En un entorno LabEx predeterminado, es posible que no haya ningún complemento instalado por defecto. La salida anterior indica que actualmente no hay complementos instalados. Si tuviera complementos instalados, se listarían aquí.

Las columnas de la salida son:

  • ID: El identificador único del complemento.
  • NAME: El nombre del complemento.
  • DESCRIPTION: Una breve descripción de la funcionalidad del complemento.
  • ENABLED: Indica si el complemento está actualmente habilitado (true) o deshabilitado (false).

Comprender qué complementos están instalados y su estado es el primer paso para administrar los complementos (plugins) de Docker. En los siguientes pasos, aprenderá cómo deshabilitar y administrar estos complementos.

Deshabilitar un complemento (plugin)

En este paso, aprenderá cómo deshabilitar un complemento (plugin) de Docker instalado. Deshabilitar un complemento lo detiene y hace que su funcionalidad no esté disponible para Docker.

Para deshabilitar un complemento, se utiliza el comando docker plugin disable seguido del nombre o ID del complemento que se desea deshabilitar.

Dado que no hay complementos instalados por defecto en este entorno, primero instalaremos un complemento simple para demostrar el comando de deshabilitación. Instalaremos el complemento vieux/sshfs, que permite montar sistemas de archivos SSH remotos como volúmenes de Docker.

Primero, instalemos el complemento. Este comando descargará la imagen del complemento y lo habilitará.

docker plugin install vieux/sshfs

Se le pedirá que confirme las capacidades del complemento. Escriba y y presione Enter para continuar.

Plugin "vieux/sshfs" is requesting the following privileges:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-host-dnsserver: true
 - allow-other: true
 - capability: [CAP_SYS_ADMIN]
Do you grant the plugin these privileges? [y/n] y

Después de que se complete la instalación, puede verificar que el complemento está instalado y habilitado listando los complementos nuevamente:

docker plugin ls

Ahora debería ver vieux/sshfs listado con ENABLED establecido en true.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         true

Ahora, deshabilitemos el complemento vieux/sshfs utilizando su nombre:

docker plugin disable vieux/sshfs

Si el comando tiene éxito, no verá ninguna salida. Esto indica que el complemento se ha deshabilitado.

Deshabilitar un complemento es útil cuando ya no necesita su funcionalidad o si está solucionando problemas. En el siguiente paso, verificará que el complemento está realmente deshabilitado.

Verificar que el complemento (plugin) está deshabilitado

En este paso, verificará que el complemento (plugin) vieux/sshfs que deshabilitó en el paso anterior en realidad ya no está habilitado.

Para comprobar el estado de los complementos instalados, puede utilizar nuevamente el comando docker plugin ls. Este comando mostrará el estado actual de todos los complementos.

Ejecute el comando:

docker plugin ls

Mire la salida para el complemento vieux/sshfs. La columna ENABLED ahora debe mostrar false.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         false

Ver false en la columna ENABLED confirma que el complemento se ha deshabilitado con éxito. Cuando un complemento está deshabilitado, Docker no puede utilizar su funcionalidad.

Este paso de verificación es importante para asegurarse de que el comando anterior tuvo el efecto deseado. En los siguientes pasos opcionales, explorará escenarios en los que deshabilitar un complemento puede ser más complejo.

Intentar deshabilitar un complemento (plugin) con referencias (opcional)

En este paso opcional, intentará deshabilitar un complemento (plugin) que está actualmente en uso o tiene recursos que dependen de él. Esto demostrará cómo Docker maneja tales situaciones.

Primero, volvamos a habilitar el complemento vieux/sshfs para poder usarlo.

docker plugin enable vieux/sshfs

Ahora, creemos un volumen de Docker que utilice el complemento vieux/sshfs. Esto creará una dependencia en el complemento.

docker volume create --driver vieux/sshfs -o sshcmd=user@host:/path/to/dir -o IdentityFile=~/.ssh/id_rsa sshfs_volume

Nota: Es probable que este comando falle porque no tiene un host SSH válido y una clave configurados. Esto es lo esperado y tiene el propósito de crear un volumen que intenta usar el complemento, creando así una referencia. Verá un mensaje de error que indica que la creación del volumen falló.

Ahora, intentemos deshabilitar el complemento vieux/sshfs nuevamente mientras el volumen sshfs_volume existe, incluso aunque la creación del volumen haya fallado.

docker plugin disable vieux/sshfs

Debería ver un mensaje de error similar a este:

Error response from daemon: plugin vieux/sshfs is in use by volume sshfs_volume

Este error ocurre porque Docker le impide deshabilitar un complemento que está actualmente referenciado por otros recursos de Docker, como volúmenes. Esto es un mecanismo de seguridad para evitar comportamientos inesperados o pérdida de datos.

Para deshabilitar con éxito el complemento en este escenario, primero tendría que eliminar el recurso dependiente (el volumen en este caso). Eliminemos el volumen:

docker volume rm sshfs_volume

Ahora, debería poder deshabilitar el complemento:

docker plugin disable vieux/sshfs

Esta vez, el comando debería tener éxito sin un mensaje de error.

Este paso ilustra que Docker gestiona las dependencias y le impide deshabilitar complementos que se están utilizando activamente.

Deshabilitar forzosamente un complemento (plugin) activo (opcional)

En este paso opcional, aprenderá cómo deshabilitar forzosamente un complemento (plugin) de Docker. Esto a veces es necesario cuando un complemento se queda atascado o no se puede deshabilitar normalmente. Sin embargo, utilice la opción de fuerza con precaución, ya que puede provocar comportamientos inesperados si el complemento está siendo utilizado activamente por recursos críticos.

Primero, asegúrese de que el complemento vieux/sshfs esté habilitado.

docker plugin enable vieux/sshfs

Ahora, intentemos deshabilitar forzosamente el complemento utilizando la bandera -f o --force:

docker plugin disable -f vieux/sshfs

Incluso con la bandera de fuerza, si el complemento está siendo utilizado activamente por un contenedor en ejecución u otro recurso crítico, Docker puede seguir impidiendo la operación de deshabilitación para evitar la inestabilidad del sistema. Sin embargo, para un complemento simple como vieux/sshfs que no está administrando activamente un contenedor en ejecución, la bandera de fuerza generalmente tendrá éxito incluso si hay referencias pendientes (aunque eliminamos la referencia del volumen en el paso anterior).

La opción de fuerza está diseñada principalmente para manejar situaciones en las que un complemento no responde o no se puede deshabilitar mediante el método estándar. Intenta detener el proceso del complemento y deshabilitarlo independientemente de su estado actual o de referencias menores.

Después de intentar deshabilitar forzosamente, puede verificar el estado del complemento:

docker plugin ls

El complemento vieux/sshfs ahora debe aparecer con ENABLED establecido en false.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         false

Con esto concluyen los pasos opcionales sobre el manejo de dependencias de complementos y la deshabilitación forzada. Ha aprendido cómo listar, deshabilitar y verificar el estado de los complementos de Docker, así como cómo Docker maneja los intentos de deshabilitar complementos con referencias.

Resumen

En este laboratorio (lab), aprendiste cómo gestionar los complementos (plugins) de Docker, centrándote específicamente en su deshabilitación. Comenzaste listando los complementos instalados utilizando docker plugin ls para entender su estado e identificar cuáles están activos. Luego, practicaste deshabilitar un complemento utilizando el comando docker plugin disable, demostrando cómo detener la funcionalidad de un complemento. Finalmente, verificaste que el complemento se deshabilitó con éxito.