Como usar o comando docker plugin push para compartilhar um plugin

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como compartilhar plugins Docker, enviando-os para um registro. Começará listando os plugins atualmente instalados no seu ambiente Docker para entender o que está disponível.

Em seguida, praticará o envio de um plugin Docker para um registro, permitindo que você compartilhe ou armazene seus plugins. Finalmente, aprenderá como enviar um plugin com uma tag específica, fornecendo controle de versão e organização para seus plugins compartilhados.

Listar plugins existentes

Nesta etapa, você aprenderá como listar os plugins existentes instalados no seu ambiente Docker. Plugins estendem a funcionalidade do Docker, permitindo que você adicione recursos como gerenciamento de volumes, drivers de rede e muito mais.

Para listar os plugins Docker atualmente instalados, você pode usar o comando docker plugin ls. Este comando mostrará uma lista de plugins, seus status e outras informações relevantes.

Vamos tentar listar os plugins no seu ambiente.

docker plugin ls

Você deve ver uma saída semelhante a esta (a saída exata pode variar dependendo do seu ambiente):

ID    NAME    DESCRIPTION    ENABLED

Em um ambiente LabEx padrão, normalmente não há plugins instalados por padrão, então a saída provavelmente mostrará uma lista vazia ou apenas componentes essenciais embutidos que não são listados como plugins separados. Isso é esperado.

O comando docker plugin ls é útil para ver rapidamente quais plugins estão disponíveis e se estão habilitados ou desabilitados. Este é o primeiro passo no gerenciamento de plugins Docker.

Enviar um plugin para um registro

Nesta etapa, você aprenderá como enviar um plugin Docker para um registro. Enviar um plugin permite que você o compartilhe com outras pessoas ou o armazene para uso posterior. Antes de poder enviar um plugin, você precisa ter um plugin disponível. Para fins de demonstração, usaremos um plugin de exemplo simples.

Primeiro, vamos puxar uma imagem de plugin de amostra. Usaremos o plugin vieux/sshfs como exemplo. Este plugin permite que você use SSHFS para volumes Docker.

docker plugin install vieux/sshfs

Você será solicitado a aceitar as capacidades do plugin. Digite y e pressione Enter.

Plugin "vieux/sshfs" is requesting the following privileges:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-devices: [fuse]
 - authz: []
 - capabilities: [CAP_SYS_ADMIN]
Do you grant the plugin these privileges? [y/N] y

Após a instalação do plugin, você pode verificar sua instalação e status usando o comando docker plugin ls novamente.

docker plugin ls

Você deve agora ver o plugin vieux/sshfs listado e seu status deve ser true (habilitado).

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount sshfs volumes                 true

Agora que temos um plugin instalado, podemos enviá-lo para um registro. Para enviar um plugin, você usa o comando docker plugin push seguido pelo nome do plugin. Para este exemplo, enviaremos o plugin vieux/sshfs.

docker plugin push vieux/sshfs

Como não estamos enviando para um registro específico (como o Docker Hub), este comando tentará enviar para o registro padrão. Para um cenário do mundo real, você precisaria fazer login no seu registro primeiro usando docker login e especificar o registro no comando push (por exemplo, docker plugin push your-registry.com/vieux/sshfs).

A saída mostrará o progresso da operação de envio.

The push refers to repository [docker.io/vieux/sshfs]
Pushed plugin vieux/sshfs:<tag>

Este comando envia o plugin para o registro especificado. Se nenhuma tag for especificada, a tag latest geralmente é usada por padrão.

Enviar um plugin com uma tag específica

Nesta etapa, você aprenderá como enviar um plugin Docker para um registro com uma tag específica. A marcação (tagging) permite que você versione seus plugins e gerencie diferentes lançamentos.

Na etapa anterior, instalamos e enviamos o plugin vieux/sshfs. Quando o enviamos sem especificar uma tag, ele provavelmente usou a tag padrão latest. Agora, vamos enviar o mesmo plugin, mas com uma tag específica, por exemplo, 1.0.

Para enviar um plugin com uma tag específica, você usa o comando docker plugin push seguido pelo nome do plugin e a tag separada por dois pontos (:).

docker plugin push vieux/sshfs:1.0

Este comando enviará o plugin vieux/sshfs com a tag 1.0 para o registro padrão. Semelhante à etapa anterior, para um cenário do mundo real com um registro personalizado, você incluiria o endereço do registro antes do nome do plugin (por exemplo, docker plugin push your-registry.com/vieux/sshfs:1.0).

A saída mostrará o progresso da operação de envio, indicando que o plugin está sendo enviado com a tag especificada.

The push refers to repository [docker.io/vieux/sshfs]
Pushed plugin vieux/sshfs:1.0

Ao usar tags, você pode manter várias versões do seu plugin no registro. Isso é crucial para gerenciar atualizações e garantir a compatibilidade. Por exemplo, você pode ter vieux/sshfs:1.0, vieux/sshfs:1.1 e vieux/sshfs:latest, permitindo que os usuários puxem a versão específica de que precisam.

Isso conclui as etapas sobre como enviar plugins Docker. Você aprendeu como enviar um plugin para um registro e como especificar uma tag durante a operação de envio.

Resumo

Neste laboratório, você aprendeu a gerenciar plugins Docker, com foco específico em listá-los e enviá-los para um registro. Você começou usando o comando docker plugin ls para visualizar os plugins instalados, entendendo que um ambiente padrão pode mostrar uma lista vazia.

Posteriormente, você praticou o envio de um plugin para um registro. Isso envolveu a instalação de um plugin de exemplo (vieux/sshfs) e, em seguida, o uso do comando docker plugin push para compartilhá-lo. Você também aprendeu como enviar um plugin com uma tag específica, permitindo o versionamento e uma melhor organização dentro do registro. Essas etapas são cruciais para compartilhar e gerenciar funcionalidades Docker personalizadas ou de terceiros.