Skip to main content

GitHub AE es una versión limitada en este momento.

Trabajar con el registro de Docker

Puedes subir y extraer tus imágenes de Docker utilizando el Registro de Docker del GitHub Packages.

Nota: GitHub Packages se encuentra actualmente en fase beta para GitHub AE.

Acerca de la compatibilidad de Docker

Cuando instalas o publicas una imagen de Docker, el registro de Docker no es compatible actualmente con capas ajenas, tales como imágenes de Windows.

Autenticar a GitHub Packages

Necesitas un token de acceso para publicar, instalar y eliminar paquetes privados, internos y públicos.

Puedes usar un personal access token para autenticarte en GitHub Packages o en la API de GitHub AE. Cuando creas un personal access token, puedes asignar al token diferentes ámbitos en función de tus necesidades. Para más información sobre los ámbitos relacionados con paquetes para un personal access token, consulta "Acerca de los permisos para los Paquetes de GitHub".

Para autenticarte en un registro del GitHub Packages dentro de un flujo de trabajo de GitHub Actions, puedes utilizar:

  • GITHUB_TOKEN para publicar los paquetes asociados con el repositorio del flujo de trabajo.
  • Un personal access token con, al menos, ámbito de read:packages para instalar los paquetes asociados con otros repositorios privados (a los cuales no puede acceder GITHUB_TOKEN).

Para más información sobre el uso de GITHUB_TOKEN en flujos de trabajo de GitHub Actions, consulta "Autenticación automática de tokens".

Autenticación con un personal access token

Debes utilizar un personal access token con los ámbitos adecuados para publicar e instalar paquetes en GitHub Packages. Para obtener más información, vea «Introducción a los paquetes de GitHub».

Puedes autenticarte en GitHub Packages con Docker utilizando el comando de inicio de sesión docker.

Para mantener tus credenciales seguras, te recomendamos que guardes tu personal access token en un archivo local de tu equipo y uses la marca --password-stdin de Docker, que lee tu token desde un archivo local.

cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin

Para usar este ejemplo de comando de inicio de sesión, reemplaza USERNAME por tu nombre de usuario de GitHub AE, HOSTNAME por la URL de tu empresa, y ~/TOKEN.txt por la ruta de archivo de tu personal access token para GitHub AE.

Para obtener más información, consulta "Inicio de sesión de Docker".

Publicar una imagen

Nota: El registro de Docker de GitHub Packages se reemplazará en una versión futura de GitHub AE por Container registry, que ofrece compatibilidad con contenedores mejorada.

Nota: Los nombres de imagen solo deben usar letras minúsculas.

GitHub Packages admite varias imágenes Docker de primer nivel por repositorio. Un repositorio puede tener cualquier cantidad de etiquetas de imagen. Puedes experimentar un servicio de menor calidad al publicar o instalar imágenes de Docker de más de 10 GB, las capas tienen un límite de 5 GB cada una. Para obtener más información, consulta "Etiqueta de Docker" en la documentación de Docker.

Después de que publiques un paquete, puedes verlo en GitHub. Para obtener más información, vea «Visualizar paquetes».

  1. Determina el nombre y la id. de la imagen Docker mediante docker images.

    $ docker images
    > <&nbsp>
    > REPOSITORY        TAG        IMAGE ID       CREATED      SIZE
    > IMAGE_NAME        VERSION    IMAGE_ID       4 weeks ago  1.11MB
    
  2. Usa el identificador de la imagen de Docker para etiquetar la imagen de Docker. Reemplaza PROPIETARIO por el nombre de la cuenta personal u organización a la que pertenece el repositorio, REPOSITORIO por el nombre del repositorio que contiene el proyecto, NOMBRE_DE_IMAGEN por el nombre del paquete o imagen, NOMBRE_DEL_HOST por el nombre de host de tu empresa, y VERSIÓN por la versión del paquete en tiempo de compilación.

    docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
    
  3. Si aún no has compilado una imagen de Docker para el paquete, compila la imagen. Reemplaza PROPIETARIO por el nombre de la cuenta personal u organización a la que pertenece el repositorio, REPOSITORIO por el nombre del repositorio que contiene el proyecto, NOMBRE_DE_IMAGEN por el nombre del paquete o imagen, VERSIÓN por la versión de paquete en tiempo de compilación, NOMBRE_DEL_HOST por el nombre de host de tu empresa, y RUTA DE ACCESO a la imagen en caso de que no esté en el directorio de trabajo actual.

    docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
    
  4. Publicar la imagen para GitHub Packages.

    docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
    

    Nota: Debes insertar la imagen con IMAGE_NAME:VERSION en lugar de con IMAGE_NAME:SHA.

Ejemplo de publicación de una imagen Docker

Puedes publicar la versión 1.0 de la imagen monalisa en el repositorio octocat/octo-app mediante un id. de imagen.

$ docker images

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

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

# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0

Puedes publicar una nueva imagen de Docker por primera vez y denominarla monalisa.

# Build the image with docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
# Assumes Dockerfile resides in the current working directory (.)
$ docker build -t docker.HOSTNAME/octocat/octo-app/monalisa:1.0 .

# Push the image to GitHub Packages
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0

Descarga de una imagen

Nota: El registro de Docker de GitHub Packages se reemplazará en una versión futura de GitHub AE por Container registry, que ofrece compatibilidad con contenedores mejorada.

Puedes usar el comando docker pull para instalar una imagen de Docker desde GitHub Packages. Reemplaza PROPIETARIO por el nombre de la cuenta personal u organización a la que pertenece el repositorio, REPOSITORIO por el nombre de repositorio que contiene tu proyecto, NOMBRE_DE_IMAGEN por el nombre del paquete o imagen, NOMBRE_DEL_HOST por el nombre del host de tu empresa, y NOMBRE_DE_ETIQUETA por la etiqueta de la imagen que quieres instalar.

docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME

Nota: Debes extraer la imagen con IMAGE_NAME:VERSION en lugar de con IMAGE_NAME:SHA.

Información adicional