Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Configurar Docker para usar con el Paquete de registro de GitHub

Puedes configurar el cliente Docker para usar Registro del paquete de GitHub para publicar y recuperar imágenes de docker

En este artículo

Autenticar a Registro del paquete de GitHub

Al usar el comando docker, te puedes autenticar en Registro del paquete de GitHub mediante tu nombre de usuario de GitHub y un token de acceso personal con los alcances read:packages y write:packages. Tu token de acceso personal también debe tener el alcance repo cuando el repositorio es privado. Para obtener más información, consulta "Crear un token de acceso personal para la línea de comando".

$ docker login docker.pkg.github.com -u USERNAME -p TOKEN

También puedes usar un GITHUB_TOKEN para publicar y consumir paquetes en el Registro del paquete de GitHub de un flujo de trabajo de Acciones de GitHub sin almacenar ni administrar un token de acceso personal. Para obtener más información acerca de GITHUB_TOKEN, consulta "GITHUB_TOKEN secret".

Puedes usar un script para insertar tu GITHUB_TOKEN en el archivo de configuración adecuado para el Registro del paquete de GitHub. Agrega el Registro del paquete de GitHub como repositorio o registro alternativo en el archivo de configuración para el cliente del paquete, además de tu nombre de usuario de GitHub y un token de acceso personal con los alcances adecuados. Los pasos exactos para crear un archivo de configuración varían por tipo de paquete.

Publicar un paquete

Registro del paquete de GitHub admite imágenes Docker de primer nivel por repositorio.

Nota: Un repositorio puede tener cualquier cantidad de etiquetas de imagen. No hay un límite establecido para el tamaño de la imagen. En la práctica, puede que tengas un servicio de menor categoría para subir y extraer elementos si una capa de imagen es superior a 10 gigabytes.

  1. Determina el nombre de la imagen e ID para tu imagen en docker usando el comando docker images:

    $ docker images
    > < >
    > REPOSITORY        TAG        IMAGE ID       CREATED      SIZE
    > IMAGE_NAME        VERSION    IMAGE_ID       4 weeks ago  1.11MB
  2. Con el ID del paso anterior, etiqueta la imagen docker con el punto final para el repositorio donde deseas subirla, el nombre de la imagen y la versión. Dado que las letras mayúsculas no son compatibles, debes usar minúscula para el propietario del repositorio si el nombre de usuario o el nombre de la organización de GitHub contiene letras mayúsculas.

    $ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Como alternativa, puedes hacer referencia al nombre local de tu imagen docker en vez de al Id. de la imagen.

    $ docker tag local-image docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION

    Si vas a crear una imagen docker nueva desde cero, puedes especificar el Registro del paquete de GitHub en el momento de la creación.

    $ docker build -t docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
  3. Sube la imagen al Registro del paquete de GitHub:

    $ docker push docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  4. Puedes acceder a tus paquetes desde esta URL reemplazando OWNER por el nombre de tu organización o tu nombre de usuario de GitHub y reemplazando REPOSITORY por el nombre de tu repositorio:

https://github.com/OWNER/REPOSITORY/packages

Por ejemplo, para subir la versión 1.0 de una imagen denominada monalisa al repositorio octocat/octo-app, los comandos serían los siguientes:

$ docker images

> REPOSITORY           TAG      IMAGE ID      CREATED      SIZE
> monalisa             1.0      c75bebcdd211  4 weeks ago  1.11MB

# Tag the image with the OWNER/REPO/IMAGE_NAME format
$ docker tag c75bebcdd211 docker.pkg.github.com/octocat/octo-app/monalisa:1.0

# Push the image to Registro del paquete de GitHub
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

De lo contrario puedes hacer referencia al nombre de la imagen local.

# Etiqueta la imagen con el formato OWNER/REPO/IMAGE_NAME 
$ docker tag monalisa:1.0 docker.pkg.github.com/octocat/octo-app/monalisa:1.0

# Sube la imagen a Registro del paquete de GitHub
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

Así es cómo deberías publicar si estás construyendo la imagen docker monalisa desde el principio:

# Desarrolla la imagen con el formato docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION format
# Adopta Dockerfile en el directorio de trabajo actual (.)
$ docker build -t docker.pkg.github.com/octocat/octo-app/monalisa:1.0 .

# Sube la imagen a Registro del paquete de GitHub
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

Recibir eventos de registro de paquetes

Puedes recibir eventos de webhooks cuando un paquete se publica o se actualiza. Para obtener más información, consulta "RegistryPackageEvent" en la documentación del programador de GitHub.

Instalar un paquete

Puedes instalar una imagen de docker desde Registro del paquete de GitHub usando el comando docker pull con el repositorio y el nombre de etiqueta de la imagen. Dado que las letras mayúsculas no son compatibles, debes usar minúscula para el propietario del repositorio si el nombre de usuario o el nombre de la organización de GitHub contiene letras mayúsculas.

$ docker pull docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

Eliminar un paquete

To avoid breaking projects that may depend on your packages, Registro del paquete de GitHub does not support deleting published versions of a package or an entire published package for public repositories. En circunstancias especiales, como cuando existen motivos legales o para cumplir con los estándares del GDPR, puedes solicitar la eliminación de un paquete a través del Soporte de GitHub. Contáctate con el Soporte de GitHub usando nuestro formulario de contacto y el asunto "Registro del paquete de GitHub".

You can delete private packages via GitHub's API. For more information, see "Access to package version deletion" in la documentación del programador de GitHub.

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos