Как использовать команду docker plugin install для установки и управления плагинами

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии вы узнаете, как устанавливать и управлять плагинами Docker с помощью команды docker plugin install. Вы рассмотрите различные сценарии установки, включая установку плагина с настройками по умолчанию, установку плагина и его настройку с использованием конкретных параметров, а также установку плагина без его немедленного включения.

С помощью практических примеров вы получите практический опыт расширения возможностей Docker путем интеграции внешних служб для хранения данных и других функций. В конце вы узнаете, как проверить успешную установку своих плагинов.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/VolumeOperationsGroup(["Volume Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/NetworkOperationsGroup(["Network Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/VolumeOperationsGroup -.-> docker/volume("Manage Volumes") docker/SystemManagementGroup -.-> docker/system("Manage Docker") docker/NetworkOperationsGroup -.-> docker/network("Manage Networks") subgraph Lab Skills docker/ls -.-> lab-555191{{"Как использовать команду docker plugin install для установки и управления плагинами"}} docker/inspect -.-> lab-555191{{"Как использовать команду docker plugin install для установки и управления плагинами"}} docker/volume -.-> lab-555191{{"Как использовать команду docker plugin install для установки и управления плагинами"}} docker/system -.-> lab-555191{{"Как использовать команду docker plugin install для установки и управления плагинами"}} docker/network -.-> lab-555191{{"Как использовать команду docker plugin install для установки и управления плагинами"}} end

Установка плагина с настройками по умолчанию

На этом этапе вы узнаете, как установить плагин Docker с настройками по умолчанию. Плагины Docker расширяют функциональность Docker, позволяя интегрироваться с внешними системами для хранения данных, сетевого взаимодействия и т.д.

Для установки плагина используйте команду docker plugin install, за которой следует имя плагина. По умолчанию Docker будет скачивать плагин с Docker Hub.

Давайте установим плагин rexray/s3fs, который обеспечивает хранение Docker-томов на Amazon S3.

docker plugin install rexray/s3fs

При выполнении этой команды Docker загрузит плагин и попросит подтверждения для предоставления ему необходимых разрешений. Введите y и нажмите Enter, чтобы продолжить.

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

После подтверждения Docker установит и включит плагин. Вы должны увидеть вывод, указывающий, что плагин был установлен и включен.

rexray/s3fs:latest

Этот вывод подтверждает, что плагин rexray/s3fs был успешно установлен и теперь включен, готов к использованию для создания томов, хранящихся на Amazon S3.

Установка плагина и настройка параметров конфигурации

На этом этапе вы узнаете, как установить плагин Docker и настроить его с использованием конкретных параметров во время установки. Некоторые плагины требуют настройки, таких как API-ключи, конечные точки или другие детали, специфичные для сервиса, чтобы корректно функционировать.

Вы можете передать параметры конфигурации в команду docker plugin install в формате plugin_name parameter_name=parameter_value.

Давайте установим плагин vieux/sshfs, который позволяет использовать SSHFS для Docker-томов. Этот плагин требует указания SSH-пользователя и хоста.

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

Как и на предыдущем этапе, Docker загрузит плагин и запросит разрешения. Введите y и нажмите Enter, чтобы предоставить разрешения.

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

После подтверждения плагин будет установлен и включен с указанными параметрами конфигурации.

vieux/sshfs:latest

Этот вывод подтверждает, что плагин vieux/sshfs был установлен и включен с параметром SSH_USER, установленным в labex, и параметром SSH_HOST, установленным в localhost. Эти параметры будут использоваться плагином при создании томов.

Установка плагина без его включения

На этом этапе вы узнаете, как установить плагин Docker без его немедленного включения. Это может быть полезно, если вы хотите установить плагин, но не хотите, чтобы он был активен до тех пор, пока вы не будете готовы его использовать, или если вам нужно выполнить дополнительные шаги настройки перед включением.

Для установки плагина без его включения используйте флаг --disable с командой docker plugin install.

Давайте установим плагин containernetworking/cni, который предоставляет возможности сети CNI (Container Network Interface), но оставим его отключенным на данный момент.

docker plugin install --disable containernetworking/cni

Docker загрузит плагин и запросит разрешения. Введите y и нажмите Enter, чтобы предоставить разрешения.

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

После подтверждения плагин будет установлен, но останется в отключенном состоянии.

containernetworking/cni:latest

Этот вывод подтверждает, что плагин containernetworking/cni был успешно установлен. На следующем этапе мы проверим его состояние.

Проверка установленного плагина

На этом этапе вы узнаете, как проверить состояние установленных плагинов Docker. Вы можете проверить, какие плагины установлены, их версии и включены ли они или отключены.

Для вывода списка всех установленных плагинов используйте команду docker plugin ls.

docker plugin ls

Эта команда отобразит таблицу с информацией о каждом установленном плагине, включая его идентификатор, имя, описание, статус включения и версию.

Вы должны увидеть три плагина, которые мы установили на предыдущих этапах: rexray/s3fs, vieux/sshfs и 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

Обратите внимание, что rexray/s3fs и vieux/sshfs помечены как ENABLED (true), в то время как containernetworking/cni помечен как ENABLED (false), так как мы установили его с флагом --disable.

Вы также можете проверить конкретный плагин для получения более подробной информации, используя команду docker plugin inspect, за которой следует имя или идентификатор плагина.

Давайте проверим плагин containernetworking/cni:

docker plugin inspect containernetworking/cni

Эта команда выведет подробный JSON-объект, содержащий всю конфигурацию и информацию о состоянии плагина. Вы можете изучить этот вывод, чтобы подтвердить настройки и состояние плагина. Найдите строку "Enabled": false в выводе, чтобы подтвердить, что он отключен.

[
  {
    "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:..."]
      }
    }
  }
]

Этот этап завершает процесс установки и проверки плагинов Docker. Вы узнали, как устанавливать плагины с настройками по умолчанию, с конкретными параметрами конфигурации и как устанавливать их без немедленного включения. Вы также знаете, как выводить список и проверять установленные плагины, чтобы проверить их состояние.

Резюме

В этом практическом занятии вы узнали, как устанавливать и управлять плагинами Docker с помощью команды docker plugin install. Вы попрактиковались в установке плагина с настройками по умолчанию, что включает в себя простое указание имени плагина и подтверждение запрошенных разрешений.

Кроме того, вы изучили, как устанавливать плагин, задавая конкретные параметры конфигурации во время процесса установки, показав, как настраивать поведение плагина с самого начала. Наконец, вы узнали, как проверить успешную установку плагина.