Como usar o comando docker plugin rm para remover um plugin

DockerBeginner
Pratique Agora

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.