GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo insertar y extraer imágenes de Docker con el registro de contenedores de DigitalOcean

Container Registry de DigitalOcean le brinda un espacio privado en la nube para almacenar y distribuir sus imágenes de Docker. Además de ofrecer un repositorio de imágenes, el servicio también se integra con los otros servicios de DigitalOcean. Puede implementar imágenes almacenadas en App Platform y usarlas con sus clústeres de Kubernetes administrados.

Beneficios y características

Container Registry es un competidor de Docker Hub que le permite mantener sus imágenes de Docker dentro de su cuenta de DigitalOcean. Es ideal cuando accederá a esas imágenes con otras funciones de DigitalOcean. No necesita configurar una cuenta de Docker Hub de pago independiente para las imágenes privadas de su aplicación.

Los datos almacenados en Container Registry se cargan automáticamente en varias regiones de centros de datos de DigitalOcean. Esto acelera la recuperación de imágenes cuando inicia contenedores y los lleva a su máquina. A diferencia de otras funciones de DigitalOcean, no puede seleccionar manualmente el centro de datos de un Container Registry.

La implementación del registro de DigitalOcean es compatible con OCI, por lo que puede interactuar con él utilizando herramientas familiares del ecosistema. Comandos como docker push y docker pull "simplemente funcionará" una vez que haya agregado las credenciales de su registro a su CLI. Del mismo modo, orquestadores como Kubernetes no tendrán problemas para hacer referencia a imágenes en su registro.

Creando un Registro

Container Registry está disponible de forma gratuita, pero el plan gratuito viene con algunas limitaciones severas. Obtiene un repositorio de imágenes (nombre de imagen de nivel superior), 500 MB de almacenamiento y un límite de transferencia de datos salientes de 500 MB, adecuado para evaluar el servicio pero probablemente no adecuado para un uso a largo plazo. El plan básico de $5/mes te ofrece cinco repositorios y 5 GB, mientras que la versión profesional de $20 incluye repositorios ilimitados y 100 GB de almacenamiento. Los excedentes de almacenamiento se facturan a 0,02 USD/GB.

Cree un registro iniciando sesión en el panel de control de DigitalOcean y haciendo clic en el enlace "Registro de contenedores" en la barra lateral izquierda. Asigne un nombre a su nuevo registro y seleccione su plan de almacenamiento. El nombre debe ser globalmente único en todos los registros de DigitalOcean, por lo que es posible que su primera opción no esté disponible. Debe constar de hasta 63 caracteres, incluidas letras, números y guiones.

Puede tomar unos segundos crear un nuevo registro. Accederá a la pantalla del panel de control de su registro una vez que se complete el proceso.

Conectando su CLI de Docker

Su próximo paso es conectar su Docker CLI al registro. Debe proporcionar a Docker sus credenciales de registro para que pueda insertar y extraer imágenes utilizando su cuenta. Hay tres maneras diferentes de lograr esto.

Usando Doctl

La utilidad de línea de comandos oficial de DigitalOcean, Doctl, incluye un script conveniente que configura su cliente Docker para que funcione con su Container Registry.

Deberá tener Doctl instalado y autenticado en su cuenta de DigitalOcean para usar este método. Ejecute el siguiente comando para configurar la integración:

doctl registry login

Uso de un token API de DigitalOcean

Los tokens de la API de DigitalOcean se pueden usar para autenticarse en los registros de contenedores. Genere un token haciendo clic en el enlace "API" en la parte inferior de la barra lateral izquierda en su cuenta de DigitalOcean. Haga clic en "Generar nuevo token", asígnele un nombre y presione "Generar token" en la siguiente ventana emergente.

Se mostrará el valor del token. Tome nota de esto ya que no podrá recuperarlo más tarde. Ahora regrese a su CLI y use el docker login comando para conectarse a su registro:

docker login registry.digitalocean.com

Se le pedirá que proporcione un nombre de usuario y una contraseña. Use el valor de su token API generado para ambos los campos. Docker ahora podrá interactuar con los registros de DigitalOcean que pertenecen a su cuenta.

Descarga de un archivo de credenciales de Docker

Si no desea generar una clave API o usar Doctl, diríjase a la página del panel de control de Container Registry y haga clic en el botón azul "Acciones" en la esquina superior derecha. Seleccione "Descargar credenciales de Docker" en el menú.

Este archivo es un config.json compatible con Docker que incluye las credenciales para su registro. Puede combinarlo con su ~/.docker/config.json principal o use el --config marcar con docker comandos:

docker --config ~/downloaded-config.json pull registry.digitalocean.com/<your-registry-name>/example-image:latest

Uso de Docker para insertar y extraer imágenes

Con Docker configurado correctamente, ahora puede usar la CLI para insertar y extraer imágenes con su Container Registry. Las imágenes deben estar etiquetadas en el siguiente formato:

registry.digitalocean.com/<your-registry-name>/example-image:latest

Aquí hay un ejemplo simple de enviar una copia de una imagen existente a su registro:

docker pull httpd:latest
docker tag httpd:latest registry.digitalocean.com/<your-registry-name>/httpd:latest
docker push registry.digitalocean.com/<your-registry-name>/httpd:latest

Diríjase al tablero de su registro en el panel de control de DigitalOcean. Su imagen recién enviada debería aparecer dentro de su registro. Puede hacer clic en la imagen para ver las etiquetas disponibles. Elimine una etiqueta específica, o todas las etiquetas disponibles para una imagen, haciendo clic en el ícono de tres puntos en el extremo derecho y seleccionando del menú.

Recolección de Basura

La eliminación de imágenes del registro puede dejar capas redundantes que ya no utilizan los manifiestos restantes. Estas capas seguirán contando para su costo de almacenamiento.

DigitalOcean proporciona una función de recolección de elementos no utilizados para eliminar capas y manifiestos huérfanos. Verá un mosaico en la pantalla del tablero de su registro cuando la recolección de elementos no utilizados podría liberar espacio de almacenamiento. Haz clic en "Vaciar basura" para comenzar el proceso.

Verá un cuadro de diálogo emergente que le permite elegir si eliminar los manifiestos sin etiquetar como parte de la limpieza. Estas son imágenes válidas que no tienen una etiqueta asignada, por lo que solo se puede hacer referencia a ellas mediante su ID completo, como registry.digitalocean.com/<your-registry-name>/example-image:a1bc23 . Por lo general, es conveniente eliminar estos manifiestos, a menos que los retenga intencionalmente.

Garbage Collection pone su registro en un estado de solo lectura hasta que se hayan eliminado todas las capas no utilizadas. Los nuevos impulsos serán rechazados mientras dure la limpieza. La recopilación no comienza hasta que finalizan las escrituras existentes, por lo que puede haber un ligero retraso después de iniciar el proceso. El progreso se muestra en la página del panel de control de su registro en el panel de control.

DigitalOcean no ofrece recolección de basura automática. Sin embargo, es posible ejecutar el proceso usando Doctl y la API de DigitalOcean para que pueda escribir su propio script y programarlo con cron .

Conclusión

Container Registry de DigitalOcean le brinda una manera conveniente de almacenar imágenes de Docker. Se autentica en el registro utilizando un token API de DigitalOcean existente. Debe tener en cuenta que los tokens API brindan acceso total a su cuenta; no se limitan al acceso al registro.

Si debe usar Container Registry a favor de Docker Hub se reduce a lo que hará con las imágenes. Si los implementará en DigitalOcean, tiene sentido colocar sus imágenes junto con su infraestructura, maximizando el rendimiento. Sin embargo, Docker Hub tiene ventajas en otras áreas, como la reconstrucción automática de imágenes y los análisis de vulnerabilidades que pueden señalar rápidamente los problemas de seguridad. El servicio de DigitalOcean no tiene ninguno de estos, sino que se centra en el almacenamiento de imágenes puro y simple.


Docker
  1. Cómo instalar y alojar un servidor OpenVPN con Docker

  2. Cómo implementar un contenedor nginx con Docker en Linode

  3. Cómo crear una imagen de Docker a partir de un contenedor y un archivo Docker

  4. Cómo hacer una copia de seguridad y restaurar contenedores Docker

  5. Cómo pausar y reanudar contenedores Docker

Cómo implementar y administrar un contenedor Docker MongoDB

Cómo copiar archivos con Docker cp a su Docker Container

Cómo usar Docker Commit para cambiar imágenes de contenedores

Cómo copiar archivos entre el host y el contenedor Docker

Cómo:Introducción a los contenedores de Windows y Docker

Primeros pasos con .NET Core y Docker y Microsoft Container Registry