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 pluginvolume.Interface: Define a interface do plugin.Types: Especifica o tipo de interface,docker.volumedriver/1.0para 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.



