Como usar o comando docker plugin install para instalar e gerenciar plugins

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como instalar e gerenciar plugins do Docker usando o comando docker plugin install. Você explorará diferentes cenários de instalação, incluindo a instalação de um plugin com as configurações padrão, a instalação de um plugin e sua configuração com parâmetros específicos, e a instalação de um plugin sem ativá-lo imediatamente.

Através de exemplos práticos, você obterá experiência prática na extensão das capacidades do Docker, integrando serviços externos para armazenamento e outras funcionalidades. Finalmente, você aprenderá como verificar a instalação bem-sucedida de seus plugins.

Instalar um plugin com as configurações padrão

Nesta etapa, você aprenderá como instalar um plugin do Docker com suas configurações padrão. Os plugins do Docker estendem a funcionalidade do Docker, permitindo que você se integre a sistemas externos para armazenamento, rede e muito mais.

Para instalar um plugin, você usa o comando docker plugin install seguido pelo nome do plugin. O Docker irá buscar o plugin do Docker Hub por padrão.

Vamos instalar o plugin rexray/s3fs, que fornece armazenamento baseado em S3 para volumes do Docker.

docker plugin install rexray/s3fs

Ao executar este comando, o Docker fará o download do plugin e pedirá confirmação para conceder as permissões necessárias. Digite y e pressione Enter para prosseguir.

Plugin "rexray/s3fs" is requesting the following permissions:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-vulnerable-api: true
 - allow-host-access: true
 - allow-device: [/dev/fuse]
 - allow-cap: [sys_admin]
Do you grant the plugin "rexray/s3fs" these permissions? [y/N] y

Após a confirmação, o Docker instalará e ativará o plugin. Você deve ver uma saída indicando que o plugin foi instalado e ativado.

rexray/s3fs:latest

Esta saída confirma que o plugin rexray/s3fs foi instalado com sucesso e agora está ativado, pronto para ser usado na criação de volumes baseados em S3.

Instalar um plugin e definir parâmetros de configuração

Nesta etapa, você aprenderá como instalar um plugin do Docker e configurá-lo com parâmetros específicos durante a instalação. Alguns plugins exigem configurações, como chaves de API, endpoints ou outros detalhes específicos do serviço, para funcionar corretamente.

Você pode passar parâmetros de configuração para o comando docker plugin install usando o formato plugin_name parameter_name=parameter_value.

Vamos instalar o plugin vieux/sshfs, que permite usar SSHFS para volumes do Docker. Este plugin requer a especificação do usuário e host SSH.

docker plugin install vieux/sshfs SSH_USER=labex SSH_HOST=localhost

Semelhante à etapa anterior, o Docker fará o download do plugin e pedirá permissões. Digite y e pressione Enter para conceder as permissões.

Plugin "vieux/sshfs" is requesting the following permissions:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-vulnerable-api: true
 - allow-host-access: true
 - allow-device: [/dev/fuse]
 - allow-cap: [sys_admin]
Do you grant the plugin "vieux/sshfs" these permissions? [y/N] y

Após a confirmação, o plugin será instalado e ativado com os parâmetros de configuração especificados.

vieux/sshfs:latest

Esta saída confirma que o plugin vieux/sshfs foi instalado e ativado com o SSH_USER definido como labex e SSH_HOST definido como localhost. Esses parâmetros serão usados pelo plugin ao criar volumes.

Instalar um plugin sem ativá-lo

Nesta etapa, você aprenderá como instalar um plugin do Docker sem ativá-lo imediatamente. Isso pode ser útil se você deseja instalar um plugin, mas não quer que ele esteja ativo até que esteja pronto para usá-lo, ou se precisar realizar etapas de configuração adicionais antes de ativá-lo.

Para instalar um plugin sem ativá-lo, você usa a flag --disable com o comando docker plugin install.

Vamos instalar o plugin containernetworking/cni, que fornece recursos de rede CNI, mas mantê-lo desativado por enquanto.

docker plugin install --disable containernetworking/cni

O Docker fará o download do plugin e pedirá permissões. Digite y e pressione Enter para conceder as permissões.

Plugin "containernetworking/cni" is requesting the following permissions:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-vulnerable-api: true
 - allow-host-access: true
 - allow-device: [/dev/fuse]
 - allow-cap: [sys_admin]
Do you grant the plugin "containernetworking/cni" these permissions? [y/N] y

Após a confirmação, o plugin será instalado, mas permanecerá em um estado desativado.

containernetworking/cni:latest

Esta saída confirma que o plugin containernetworking/cni foi instalado com sucesso. Na próxima etapa, verificaremos seu status.

Verificar o plugin instalado

Nesta etapa, você aprenderá como verificar o status dos plugins do Docker instalados. Você pode verificar quais plugins estão instalados, sua versão e se estão ativados ou desativados.

Para listar todos os plugins instalados, você usa o comando docker plugin ls.

docker plugin ls

Este comando exibirá uma tabela com informações sobre cada plugin instalado, incluindo seu ID, Nome, Descrição, status de Ativado e Versão.

Você deve ver os três plugins que instalamos nas etapas anteriores: rexray/s3fs, vieux/sshfs e containernetworking/cni.

ID                  NAME                       DESCRIPTION                                            ENABLED             VERSION
a1b2c3d4e5f6        rexray/s3fs:latest         REX-Ray S3FS Plugin                                    true                latest
g7h8i9j0k1l2        vieux/sshfs:latest         The `sshfs` plugin for Docker.                         true                latest
m3n4o5p6q7r8        containernetworking/cni:latest CNI network plugin for Docker                        false               latest

Observe que rexray/s3fs e vieux/sshfs estão listados como ENABLED (true), enquanto containernetworking/cni está listado como ENABLED (false), pois o instalamos com a flag --disable.

Você também pode inspecionar um plugin específico para obter informações mais detalhadas usando o comando docker plugin inspect seguido pelo nome ou ID do plugin.

Vamos inspecionar o plugin containernetworking/cni:

docker plugin inspect containernetworking/cni

Este comando produzirá um objeto JSON detalhado contendo todas as informações de configuração e status do plugin. Você pode examinar esta saída para confirmar as configurações e o estado do plugin. Procure a linha "Enabled": false na saída para confirmar que ele está desativado.

[
  {
    "Id": "m3n4o5p6q7r8",
    "Name": "containernetworking/cni:latest",
    "Enabled": false,
    "Settings": {
      "Args": [],
      "Env": [],
      "Devices": [],
      "Mounts": []
    },
    "PluginReference": "docker.io/containernetworking/cni:latest",
    "Config": {
      "DockerVersion": "20.10.21",
      "Description": "CNI network plugin for Docker",
      "Documentation": "https://github.com/containernetworking/cni",
      "Interface": {
        "Types": ["docker.networkdriver/1.0"],
        "Socket": "cni.sock"
      },
      "Entrypoint": ["/docker-cni-plugin"],
      "PropagatedMount": "/opt/cni",
      "WorkDir": "",
      "User": {},
      "Args": {
        "Name": "",
        "Description": ""
      },
      "Linux": {
        "Capabilities": ["CAP_SYS_ADMIN"],
        "AllowAllDevices": false,
        "Devices": [
          {
            "Name": "fuse",
            "Path": "/dev/fuse"
          }
        ]
      },
      "Rootfs": {
        "Type": "tar",
        "DiffIds": ["sha256:..."]
      }
    }
  }
]

Esta etapa conclui o processo de instalação e verificação dos plugins do Docker. Você aprendeu como instalar plugins com configurações padrão, com parâmetros de configuração específicos e como instalá-los sem ativá-los imediatamente. Você também sabe como listar e inspecionar plugins instalados para verificar seu status.

Resumo

Neste laboratório, você aprendeu como instalar e gerenciar plugins do Docker usando o comando docker plugin install. Você praticou a instalação de um plugin com as configurações padrão, o que envolve simplesmente especificar o nome do plugin e confirmar as permissões solicitadas.

Além disso, você explorou como instalar um plugin enquanto define parâmetros de configuração específicos durante o processo de instalação, demonstrando como personalizar o comportamento do plugin desde o início. Por fim, você aprendeu como verificar a instalação bem-sucedida de um plugin.