Docker Engine admite un sistema de complementos que le permite agregar funcionalidad adicional al tiempo de ejecución del contenedor. Los complementos para nuevos controladores de almacenamiento, pilas de redes y sistemas de registro están disponibles gratuitamente.
Las versiones modernas de Docker Engine incluyen todo lo que necesita para administrar complementos dentro de la CLI. Nos estamos concentrando en este sistema de complementos "administrados" en esta guía. Debe instalar y mantener manualmente los complementos que usan el sistema de complementos heredado.
Todo sobre los complementos
Los complementos amplían Docker Engine con nuevas capacidades que son demasiado específicas para enviarse con la instalación general. Normalmente no interactúas con complementos directamente. Una vez que se instala un complemento, puede hacer referencia a los recursos que proporciona al ejecutar los comandos de Docker existentes.
Hay tres tipos principales de complementos:
- Registro – Estos complementos agregan nuevos controladores de registro, lo que le permite almacenar registros en ubicaciones fuera de Docker Engine y su máquina host.
- Red – Los complementos de red pueden agregar soporte para nuevos tipos de red y funcionalidad relacionada.
- Volumen – Los complementos de almacenamiento brindan sistemas de archivos adicionales y controladores de volumen a Docker, lo que le brinda más opciones para datos persistentes.
También están disponibles complementos con características que quedan fuera de estas áreas centrales. Los complementos son creados por proveedores de la comunidad; puede escribir los suyos usando la API de complementos públicos y Go SDK.
Los complementos se distribuyen a través de Docker Hub. Puede encontrar complementos disponibles dirigiéndose a la página Explorar y seleccionando la pestaña Complementos en la parte superior. Actualmente hay más de 600 complementos disponibles.
Si escribe su propio complemento, puede enviarlo a Docker Hub con docker plugin push
dominio. Esto funciona de manera similar a enviar una imagen al registro público. Debe ejecutar docker plugin create
primero para convertir el manifiesto y el sistema de archivos de su complemento en un paquete que está listo para enviar. Puede obtener más información sobre la creación de complementos en los documentos de Docker.
Instalando un complemento
Los complementos se instalan con docker plugin install
dominio. Esto acepta el nombre de un complemento de Docker Hub como argumento:
docker plugin install store/example/example-plugin:version
Las referencias de complementos parecen referencias de imágenes que comienzan con store/
. Se aplican los mismos principios de etiquetado cuando se especifica la versión del complemento que se va a instalar. A diferencia de las imágenes, no puede omitir la versión para extraer automáticamente la latest
etiqueta.
Puede encontrar el número de versión de un complemento y copiar un comando de instalación listo para ejecutar haciendo clic en el botón "Instrucciones de configuración" en su página de Docker Hub. Los complementos gratuitos le permitirán pasar a una nueva pantalla con el cuadro normal de copiar y pegar en la esquina superior derecha. Ejecute el comando en su terminal para comenzar a instalar el complemento.
Los complementos generalmente solicitan acceso a los privilegios del host para que puedan proporcionar su funcionalidad. Como ejemplo, un complemento de red deberá tener acceso al host
de Docker. red para que pueda conectar nuevos recursos. Confirme la solicitud de permiso escribiendo y
y presionando enter para completar la instalación. Puede omitir el aviso agregando --grant-all-permissions
marca a tu install
dominio; esto es ideal para instalaciones no interactivas, pero corre el riesgo de otorgar permisos no intencionales si un complemento se actualiza con nuevas capacidades.
Los complementos se habilitan automáticamente después de la instalación. Habilitar un complemento permite la ejecución de scripts de preinstalación. Usa el --disable
marca para que un complemento tenga el estado deshabilitado de manera predeterminada, dejándolo inerte hasta que se active manualmente más tarde.
Ver detalles del complemento
Una vez instalado, su complemento aparecerá cuando se ejecute docker plugin ls
:
docker plugin ls
Se puede obtener información más detallada sobre un solo complemento en docker inspect
dominio. Esto acepta una ID o etiqueta de complemento y muestra JSON detallado que describe el manifiesto del complemento:
docker inspect eccffc
Instalación sin conexión
La CLI de Docker no tiene una forma integrada de instalar complementos sin conexión. No obstante, puede agregar complementos a una instalación de Docker air-gapped instalándolos primero en un cliente en red y luego copiando los archivos del complemento en el sistema fuera de línea.
Encontrará complementos instalados dentro de /var/lib/docker/plugins
directorio en su host. Cada complemento tiene su propio subdirectorio nombrado con su ID. Estos ID son visibles en la salida del docker plugin ls
comando.
Habilitar y deshabilitar complementos
Los complementos se pueden habilitar o deshabilitar. Verá el estado actual en la última columna de ls
producción. Un complemento deshabilitado no se cargará, por lo que actuará como si no estuviera instalado.
Use la docker plugin enable
y docker plugin disable
Comandos para cambiar el estado de un complemento. Proporcione la ID de uno de sus complementos instalados como único argumento del comando:
docker plugin enable eccffc
Es posible que no pueda deshabilitar un complemento si la configuración de Docker Engine o uno de sus contenedores lo usa activamente. Agregando el -f
flag obligará a deshabilitar el complemento, pero debe usarse con moderación, ya que corre el riesgo de que el contenedor se salga sin querer.
Los complementos se desinstalan con docker plugin rm
dominio. Proporcione la ID o el nombre de un complemento para eliminarlo por completo de Docker. rm
tiene el mismo comportamiento que disable
al manejar complementos utilizados activamente y, posteriormente, eliminaciones forzadas.
Cambiando la configuración del complemento
El sistema de complementos de Docker incluye un mecanismo integrado para que los autores de complementos expongan configuraciones personalizables. Como usuario, puede cambiar esta configuración a través del docker plugin set
comando:
docker plugin set example-plugin setting-key=new-value
Reemplazar example-plugin
con la ID o el nombre del complemento al que se dirige. El valor de la setting-key
del complemento la configuración se actualizará a new-value
.
Las configuraciones disponibles naturalmente varían de un complemento a otro. Deben estar documentados en la descripción del complemento en Docker Hub. La CLI de Docker no tiene un comando incorporado para ver todas las configuraciones disponibles para un complemento, pero aparecen en docker plugin inspect
producción. Busque la Settings
campo en la representación JSON de un complemento; contendrá objetos con Name
y Settable
campos para las opciones que puede cambiar a través de la CLI.
Actualizando tus complementos
Los complementos se actualizan con la docker plugin update
dominio. Al igual que los otros comandos, toma una ID o etiqueta de complemento como argumento.
Al actualizar un complemento, se descargará e instalará la última versión disponible en Docker Hub. Si ya está en la versión más reciente, el comando reinstalará la versión actual. Se le pedirá que otorgue al complemento los nuevos privilegios que requiere. --grant-all-permissions
se acepta la marca para omitir el indicador en entornos donde la entrada interactiva no es factible.
No hay forma de actualizar todos los complementos en su sistema con un solo comando. Es mejor que se suscriba a los anuncios de lanzamiento de los proveedores de sus complementos y luego aplique actualizaciones a su instalación a medida que estén disponibles. Esto asegurará que sus complementos permanezcan seguros y compatibles.
Resumen
El ecosistema de complementos de Docker le permite agregar funciones adicionales a Docker Engine. Los complementos residen en Docker Hub y se pueden instalar desde su terminal. La CLI incorpora un actualizador de complementos, pero solo funciona con un solo complemento a la vez, no con todo el catálogo.
Ahora que sabe cómo usar y administrar complementos, puede comenzar a explorar Docker Hub para encontrar opciones para mejorar su flujo de trabajo. Elastic Logging Plugin transmite registros de contenedores de Docker a un clúster de pila de Elastic, vSphere para Docker le permite usar el almacenamiento de VMWare vSphere para sus volúmenes persistentes, y Weave Net trae redes cifradas de multidifusión a Docker. Si no ve lo que necesita, use la API del complemento para intentar escribir su propia solución que pueda publicar en una comunidad más amplia a través del Hub.