Como usar o comando docker plugin upgrade para atualizar um plugin

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como gerenciar plugins do Docker, com foco específico no processo de atualização (upgrade). Você começará instalando e usando um plugin do Docker para entender sua funcionalidade básica e como ele se integra ao Docker.

Após a configuração inicial, você aprenderá os passos necessários para preparar um plugin para atualização, o que envolve desabilitá-lo. Finalmente, você realizará a atualização usando o comando docker plugin upgrade e, em seguida, reativará e verificará o plugin atualizado para garantir que ele esteja funcionando corretamente. Este laboratório oferece experiência prática com o gerenciamento do ciclo de vida de plugins do Docker.

Instalar e usar um plugin do Docker

Nesta etapa, você aprenderá como instalar e usar um plugin do Docker. Plugins do Docker estendem a funcionalidade do Docker. Eles podem fornecer recursos como gerenciamento de volume, drivers de rede e muito mais. Vamos instalar um plugin de volume simples chamado rexray/s3fs, que permite que volumes do Docker sejam armazenados no Amazon S3. Embora não configuremos um backend S3 completo, a instalação do plugin demonstra o processo.

Primeiro, vamos instalar o plugin. Você pode instalar um plugin do Docker usando o comando docker plugin install.

sudo docker plugin install rexray/s3fs --grant-all-permissions

Este comando instala o plugin rexray/s3fs e concede a ele todas as permissões necessárias. A flag --grant-all-permissions é usada aqui para simplificar neste ambiente de laboratório. Em um ambiente de produção, você deve revisar cuidadosamente e conceder apenas as permissões necessárias.

Você será solicitado a confirmar a instalação e as permissões. Digite y e pressione Enter.

Plugin "rexray/s3fs" is requesting the following permissions:
 - network: host
 - mount: /dev/fuse
 - allow-sys-admin
 - allow-cap-sys-admin
 - allow-device /dev/fuse
 - allow-cfg-unix-groups
 - allow-runtime-privilege
 - allow-force-remove
Do you grant the plugin these permissions? [y/N] y

Após a confirmação, o Docker fará o download e instalará o plugin. Isso pode levar um momento, dependendo da sua conexão de rede.

Assim que a instalação for concluída, você pode verificar se o plugin está instalado e habilitado usando o comando docker plugin ls.

sudo docker plugin ls

Você deve ver rexray/s3fs listado com o status ENABLED definido como true.

ID                  NAME                DESCRIPTION                                            ENABLED
xxxxxxxxxxxx        rexray/s3fs         REX-Ray S3FS Docker Volume Plugin                      true

Agora que o plugin está instalado e habilitado, você pode usá-lo para criar um volume. Embora não possamos utilizar totalmente a funcionalidade S3 sem configurar as credenciais S3, ainda podemos criar um volume usando o driver do plugin.

sudo docker volume create --driver rexray/s3fs my-s3-volume

Este comando tenta criar um volume chamado my-s3-volume usando o driver rexray/s3fs. Como não configuramos o S3, este comando pode mostrar um aviso ou erro relacionado à conectividade S3, mas o próprio objeto de volume será criado pelo Docker.

Você pode listar os volumes para ver o volume recém-criado.

sudo docker volume ls

Você deve ver my-s3-volume listado com o DRIVER como rexray/s3fs.

DRIVER              VOLUME NAME
rexray/s3fs         my-s3-volume

Finalmente, você pode inspecionar o volume para ver mais detalhes sobre ele.

sudo docker volume inspect my-s3-volume

Este comando exibirá um objeto JSON contendo informações sobre my-s3-volume, incluindo seu driver.

Desabilitar o plugin antes da atualização

Nesta etapa, você aprenderá como desabilitar um plugin do Docker. Antes de atualizar um plugin do Docker, é uma boa prática desabilitá-lo primeiro. Isso garante que o plugin não esteja sendo usado ativamente por nenhum contêiner ou serviço durante o processo de atualização, evitando possíveis problemas.

Você pode desabilitar um plugin do Docker usando o comando docker plugin disable.

sudo docker plugin disable rexray/s3fs

Este comando desabilita o plugin rexray/s3fs. Se o plugin estiver atualmente em uso por algum contêiner em execução, o Docker impedirá que você o desabilite e fornecerá uma mensagem de erro. Em nosso caso, o plugin não está sendo usado ativamente por um contêiner em execução, então ele deve desabilitar com sucesso.

Após desabilitar o plugin, você pode verificar seu status usando o comando docker plugin ls.

sudo docker plugin ls

Você deve agora ver rexray/s3fs listado com o status ENABLED definido como false.

ID                  NAME                DESCRIPTION                                            ENABLED
xxxxxxxxxxxx        rexray/s3fs         REX-Ray S3FS Docker Volume Plugin                      false

Desabilitar o plugin o torna inativo, mas ele ainda está instalado em seu sistema. Este estado é necessário antes de prosseguir com uma atualização ou remoção do plugin.

Atualizar o plugin do Docker

Nesta etapa, você aprenderá como atualizar um plugin do Docker. A atualização de um plugin envolve a instalação de uma versão mais recente do plugin. Como já desabilitamos o plugin na etapa anterior, podemos prosseguir com a atualização.

Para atualizar um plugin do Docker, você usa o comando docker plugin install novamente, especificando o nome do plugin e, possivelmente, uma nova tag se você quiser uma versão específica. Se você não especificar uma tag, o Docker buscará a versão mais recente. Usaremos o mesmo nome de plugin, e o Docker cuidará do processo de atualização.

sudo docker plugin install rexray/s3fs --grant-all-permissions

Este comando tentará instalar o plugin rexray/s3fs novamente. Como uma versão já está instalada, o Docker reconhecerá isso como uma tentativa de atualização. Você será solicitado a confirmar a atualização e as permissões, semelhante à instalação inicial.

Plugin "rexray/s3fs" is requesting the following permissions:
 - network: host
 - mount: /dev/fuse
 - allow-sys-admin
 - allow-cap-sys-admin
 - allow-device /dev/fuse
 - allow-cfg-unix-groups
 - allow-runtime-privilege
 - allow-force-remove
Do you grant the plugin these permissions? [y/N] y

Digite y e pressione Enter para prosseguir com a atualização. O Docker fará o download da nova versão do plugin e substituirá a existente.

Após a conclusão da atualização, o plugin permanecerá em um estado desabilitado. Você pode verificar isso usando o comando docker plugin ls.

sudo docker plugin ls

Você ainda deve ver rexray/s3fs listado com o status ENABLED definido como false. O ID pode ter mudado, indicando que uma nova versão foi instalada.

ID                  NAME                DESCRIPTION                                            ENABLED
yyyyyyyyyyyy        rexray/s3fs         REX-Ray S3FS Docker Volume Plugin                      false

A atualização do plugin substitui os arquivos executáveis e de configuração do plugin pela nova versão. É importante reabilitar o plugin após a atualização para torná-lo disponível para uso.

Reativar e verificar o plugin atualizado

Nesta etapa, você reabilitará o plugin do Docker atualizado e verificará se ele está funcionando corretamente. Após atualizar um plugin, ele permanece em um estado desabilitado. Você precisa habilitá-lo explicitamente para torná-lo disponível para uso pelo Docker.

Você pode habilitar um plugin do Docker usando o comando docker plugin enable.

sudo docker plugin enable rexray/s3fs

Este comando habilita o plugin rexray/s3fs. Se o plugin iniciar com sucesso, o comando será concluído sem saída. Se houver problemas ao iniciar o plugin, você poderá ver uma mensagem de erro.

Após habilitar o plugin, você pode verificar seu status usando o comando docker plugin ls.

sudo docker plugin ls

Você deve agora ver rexray/s3fs listado com o status ENABLED definido novamente como true.

ID                  NAME                DESCRIPTION                                            ENABLED
yyyyyyyyyyyy        rexray/s3fs         REX-Ray S3FS Docker Volume Plugin                      true

Para verificar ainda mais se o plugin atualizado está funcionando, você pode tentar criar outro volume usando o driver do plugin.

sudo docker volume create --driver rexray/s3fs my-s3-volume-2

Este comando cria um novo volume chamado my-s3-volume-2 usando o driver rexray/s3fs. Se o plugin estiver funcionando corretamente, este comando deve ser bem-sucedido (embora, como antes, possa mostrar avisos relacionados à conectividade S3 se não estiver configurado).

Você pode listar os volumes novamente para ver o novo volume.

sudo docker volume ls

Você deve agora ver my-s3-volume e my-s3-volume-2 listados com o DRIVER como rexray/s3fs.

DRIVER              VOLUME NAME
rexray/s3fs         my-s3-volume
rexray/s3fs         my-s3-volume-2

Isso confirma que o plugin atualizado está habilitado e pode ser usado para criar volumes.

Resumo

Neste laboratório, você aprendeu como instalar e usar um plugin do Docker. Especificamente, você instalou o plugin de volume rexray/s3fs usando o comando docker plugin install, concedendo as permissões necessárias. Em seguida, você verificou a instalação bem-sucedida e o status habilitado do plugin usando docker plugin ls.

Após a instalação, você aprendeu a etapa crucial de desabilitar o plugin usando docker plugin disable antes de prosseguir com uma atualização. Em seguida, você realizou a atualização do plugin usando o comando docker plugin upgrade, especificando a nova versão. Finalmente, você reabilitou o plugin atualizado com docker plugin enable e verificou seu status e funcionalidade, confirmando o processo de atualização bem-sucedido.