Como usar o comando docker plugin create para construir um plugin

DockerBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como criar um plugin Docker usando o comando docker plugin create. Este processo envolve a preparação da estrutura de diretórios e do arquivo de configuração necessários para o seu plugin e, em seguida, o uso do comando para construir o plugin a partir desses componentes.

O laboratório irá guiá-lo através da preparação do diretório de dados do plugin, que inclui a criação de um arquivo config.json para definir as propriedades e a interface do plugin. Em seguida, você executará o comando docker plugin create para construir o plugin com base nos dados preparados. Finalmente, você verificará se o plugin foi criado com sucesso e está disponível no seu ambiente Docker.

Preparar o diretório de dados do plugin

Nesta etapa, prepararemos a estrutura de diretórios necessária para o nosso plugin Docker. Um plugin Docker precisa de um layout de diretório específico para funcionar corretamente. Este diretório conterá a configuração do plugin e, possivelmente, outros arquivos necessários.

Primeiro, navegue até o diretório do seu projeto.

cd ~/project

Agora, crie um diretório para os dados do plugin. Vamos chamá-lo de my-plugin-data.

mkdir my-plugin-data

Dentro do diretório my-plugin-data, precisamos criar um arquivo de configuração chamado config.json. Este arquivo conterá os detalhes da configuração do plugin.

cd my-plugin-data
nano config.json

Adicione o seguinte conteúdo ao arquivo config.json. Esta é uma configuração básica que especifica o tipo e a descrição do plugin.

{
  "Description": "Meu primeiro plugin Docker",
  "Types": [
    {
      "Name": "volume",
      "Description": "Um plugin de volume simples"
    }
  ],
  "Interface": {
    "Types": ["docker.volumedriver/1.0"],
    "Socket": "my-plugin.sock"
  },
  "Entrypoint": ["/usr/local/bin/my-plugin"]
}

Vamos detalhar o arquivo config.json:

  • Description: Uma descrição legível por humanos do plugin.
  • Types: Especifica os tipos de plugins fornecidos. Neste caso, é um plugin volume.
  • Interface: Define a interface do plugin.
    • Types: Especifica o tipo de interface, docker.volumedriver/1.0 para um driver de volume.
    • Socket: O nome do socket de domínio Unix que o plugin irá escutar. O Docker se comunicará com o plugin através deste socket.
  • Entrypoint: O comando que o Docker executará quando o plugin for ativado. Este deve ser o caminho para o executável do seu plugin dentro do sistema de arquivos raiz do plugin.

Salve o arquivo e saia do editor nano pressionando Ctrl + X, depois Y e Enter.

Finalmente, navegue de volta para o diretório raiz do projeto.

cd ~/project

Você criou com sucesso a estrutura básica de diretórios e o arquivo de configuração para o seu plugin Docker.

Criar o plugin usando docker plugin create

Nesta etapa, usaremos o comando docker plugin create para criar o plugin com base no diretório que preparamos na etapa anterior. O comando docker plugin create recebe um nome de plugin e o caminho para o diretório de dados do plugin como argumentos.

A sintaxe do comando é docker plugin create <plugin-name> <plugin-data-directory>.

Vamos nomear nosso plugin my-plugin e usar o diretório my-plugin-data que criamos. Certifique-se de estar no diretório ~/project.

cd ~/project
sudo docker plugin create my-plugin ./my-plugin-data

Você deve ver uma saída indicando que o plugin está sendo criado. Se for bem-sucedido, o comando será concluído sem erros.

O comando docker plugin create lê o arquivo config.json do diretório especificado e registra o plugin com o daemon Docker. Neste ponto, o plugin é criado, mas ainda não está ativado.

Verificar o plugin criado

Nesta etapa, verificaremos se o plugin foi criado com sucesso e está listado pelo Docker. Podemos usar o comando docker plugin ls para listar todos os plugins disponíveis.

Certifique-se de estar no diretório ~/project.

cd ~/project
sudo docker plugin ls

A saída deste comando deve mostrar uma lista de plugins. Você deve ver uma entrada para my-plugin com o status disabled. Isso confirma que o plugin foi registrado com o Docker, mas ainda não está ativo.

A saída será semelhante a esta (o ID será diferente):

ID             NAME        TAG       DESCRIPTION             ENABLED
a1b2c3d4e5f6   my-plugin             My first Docker plugin   false

A coluna ENABLED mostra false, indicando que o plugin está atualmente desativado. Para usar o plugin, você precisaria ativá-lo usando docker plugin enable. No entanto, como esta é apenas uma demonstração da criação da estrutura do plugin, não o ativaremos neste laboratório.

Você criou e verificou com sucesso a existência do seu plugin Docker.

Resumo

Neste laboratório, aprendemos como preparar a estrutura de diretórios e o arquivo de configuração necessários para um plugin Docker. Isso envolveu a criação de um diretório dedicado para os dados do plugin e a definição das características do plugin, como sua descrição, tipo, interface e ponto de entrada (entrypoint), dentro de um arquivo config.json. Esta etapa fundamental é crucial para definir como o Docker interage e gerencia o plugin.