Introdução
Neste laboratório, você aprenderá como remover um plugin do Docker usando o comando docker plugin rm. Você começará instalando um plugin de exemplo para trabalhar. Em seguida, tentará remover o plugin enquanto ele ainda estiver habilitado para entender o comportamento padrão e o erro encontrado.
Após a tentativa falhada, você aprenderá como desabilitar o plugin, que é um pré-requisito necessário para a remoção. Finalmente, você removerá com sucesso o plugin desabilitado e também explorará a opção de usar a flag de força para a remoção.
Instalar um plugin de exemplo
Nesta etapa, você aprenderá como instalar um plugin do Docker. Os plugins do Docker estendem a funcionalidade do Docker, permitindo que você se integre a sistemas externos para coisas como armazenamento, rede e registro de logs.
Vamos instalar um plugin de exemplo simples para demonstrar o processo. O comando para instalar um plugin é docker plugin install. Você precisará aceitar as capacidades e permissões do plugin durante a instalação.
Primeiro, vamos instalar o plugin vieux/sshfs. Este plugin permite que você use SSHFS para montar volumes.
docker plugin install vieux/sshfs
Você será solicitado a aceitar as capacidades do plugin. Digite y e pressione Enter para prosseguir.
Plugin "vieux/sshfs" is requesting the following capabilities:
- Network: host
- Mounts: [/dev/fuse]
- Args: [--sshkey-path]
Do you grant the plugin these permissions? [y/N] y
Após aceitar, o plugin será instalado e habilitado. Você pode verificar a instalação listando os plugins instalados.
docker plugin ls
Você deve ver vieux/sshfs listado com o status ENABLED definido como true.
Tentar remover um plugin habilitado
Na etapa anterior, você instalou e habilitou o plugin vieux/sshfs. Nesta etapa, você tentará remover este plugin enquanto ele ainda estiver habilitado. Isso demonstrará que você não pode remover um plugin habilitado diretamente.
O comando para remover um plugin do Docker é docker plugin rm. Vamos tentar remover o plugin vieux/sshfs.
docker plugin rm vieux/sshfs
Você verá uma mensagem de erro indicando que o plugin está habilitado e não pode ser removido. Este é o comportamento esperado, pois o Docker impede que você remova um plugin que está atualmente em uso ou ativo.
A saída será semelhante a esta:
Error response from daemon: plugin vieux/sshfs is enabled. Disable it before removing
Isso confirma que você deve desabilitar um plugin antes de removê-lo. Na próxima etapa, você aprenderá como desabilitar o plugin.
Desativar o plugin
Na etapa anterior, você aprendeu que não pode remover um plugin do Docker habilitado. Para remover um plugin, você deve primeiro desabilitá-lo.
O comando para desabilitar um plugin do Docker é docker plugin disable. Agora, vamos desabilitar o plugin vieux/sshfs que você instalou na primeira etapa.
docker plugin disable vieux/sshfs
Este comando irá parar o plugin e torná-lo inativo. Você não verá muita saída se o comando for bem-sucedido.
Para confirmar que o plugin foi desabilitado, você pode listar os plugins instalados novamente.
docker plugin ls
Agora, a saída para vieux/sshfs deve mostrar ENABLED como false.
ID NAME DESCRIPTION ENABLED
f51132325c3b vieux/sshfs Create SSHFS mounts true
Espere, a saída ainda mostra true? Isso ocorre porque o comando docker plugin ls pode mostrar informações em cache. Vamos tentar listar os plugins novamente para ver o status atualizado.
docker plugin ls
Agora você deve ver o status ENABLED para vieux/sshfs como false.
ID NAME DESCRIPTION ENABLED
f51132325c3b vieux/sshfs Create SSHFS mounts false
O plugin agora está desabilitado e pronto para ser removido.
Remover o plugin desativado
Na etapa anterior, você desabilitou com sucesso o plugin vieux/sshfs. Agora que o plugin está desabilitado, você pode removê-lo usando o comando docker plugin rm.
docker plugin rm vieux/sshfs
Se o plugin foi removido com sucesso, você verá o nome do plugin impresso na saída.
vieux/sshfs
Para confirmar que o plugin foi removido, liste os plugins instalados novamente.
docker plugin ls
Desta vez, o plugin vieux/sshfs não deve mais aparecer na lista.
Isso demonstra o processo padrão para remover um plugin do Docker: primeiro desabilite-o e, em seguida, remova-o. Na próxima etapa, você explorará o que acontece se tentar forçar a remoção de um plugin.
Tentar remover o plugin usando força
Nas etapas anteriores, você aprendeu que deve desabilitar um plugin antes de removê-lo. O que acontece se você tentar forçar a remoção de um plugin habilitado?
O comando docker plugin rm possui uma flag --force ou -f que pode ser usada para tentar forçar a remoção de um plugin. No entanto, mesmo com a flag force, o Docker não removerá um plugin habilitado.
Vamos primeiro reinstalar o plugin vieux/sshfs para que tenhamos um plugin habilitado com o qual trabalhar.
docker plugin install vieux/sshfs
Lembre-se de digitar y e pressionar Enter quando solicitado a aceitar as capacidades.
Agora que o plugin está instalado e habilitado novamente, vamos tentar removê-lo usando a flag force.
docker plugin rm --force vieux/sshfs
Você verá uma mensagem de erro semelhante à que viu quando tentou removê-lo sem a flag force, indicando que o plugin está habilitado e não pode ser removido.
Error response from daemon: plugin vieux/sshfs is enabled. Disable it before removing
Isso confirma que a flag force não substitui o requisito de desabilitar um plugin antes da remoção. A flag force é normalmente usada em outros contextos do Docker, como remover contêineres, imagens ou volumes, para ignorar certas verificações, mas não se aplica à remoção de plugins habilitados.
Para limpar, você pode desabilitar e remover o plugin novamente, se desejar, seguindo as etapas que você aprendeu anteriormente.
Resumo
Neste laboratório, você aprendeu como instalar um plugin do Docker usando docker plugin install e verificou sua instalação com docker plugin ls. Em seguida, você tentou remover um plugin habilitado usando docker plugin rm e descobriu que o Docker impede a remoção de plugins ativos, exigindo que eles sejam desabilitados primeiro.



