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.