Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

Trabajar con el registro de Docker

Puedes subir y extraer tus imágenes de Docker utilizando el registro de Docker del Registro del paquete de GitHub, el cual utiliza el designador de nombre https://docker.pkg.github.com.

el Registro del paquete de GitHub se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, Nube de GitHub Enterprise, GitHub Enterprise Server, y GitHub AE.

Nota: El Registro del paquete de GitHub se encuentra actualmente en beta para GitHub Enterprise Server 2.22. Para unirte al beta de tu instancia de GitHub Enterprise Server, utiliza el formato de registro.

Nota: Cuando instalas o publicas una imagen de docker, Registro del paquete de GitHub no es compatible con capas externas, tales como imágenes de Windows.

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.

Antes de que puedas utilizar el registro de Docker en el Registro del paquete de GitHub, el administrador de sitio de tu instancia de GitHub Enterprise Server debe habilitar la compatibilidad de Docker y el aislamiento de subdominios para tu instancia. Para obtener más informacón, consulta la sección "Administrar GitHub Packages para tu empresa".

Autenticarte en Registro del paquete de GitHub

Necesitas de un token de acceso para publicar, instalar, y borrar paquetes en Registro del paquete de GitHub.

Puees utilizar un token de acceso personal (PAT) para autenticarte en el Registro del paquete de GitHub o en la API de GitHub. Cuando creas un token de acceso personal, puedes asignar al token diferentes ámbitos en función de tus necesidades. Para obtener más información sobre los alcances relacionados con los paquetes para un PAT, consulta la sección "Acerca de los permisos para los Paquetes de GitHub".

Para autenticarte en un registro del Registro del paquete de GitHub 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 PAT para instalar los paquetes asociados con otros repositorios privados (a los cuales no puede acceder el GITHUB_TOKEN).

Para obtener más información sobre el GITHUB_TOKEN que se utiliza en los flujos de trabajo de GitHub Actions, consulta la sección "Autenticarse en un flujo de trabajo".

Autenticarte con un token de acceso personal

Debes utilizar un token de acceso personal con los alcances adecuados para publicar e instalar paquetes en Registro del paquete de GitHub. Para obtener más información, consulta "Acerca de Registro del paquete de GitHub".

Puedes autenticar a Registro del paquete de GitHub con Docker usando el comando de inicio de sesión Docker.

Para mantener tus credenciales seguras, te recomendamos que guardes tu token de acceso personal en un archivo local de tu computadora y utilices el marcador --password-stdin de Docker, el cual lee tu token desde un archivo local.

$ docker images

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

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

# Sube la imagen a {% data variables.product.prodname_registry %}
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

Para utilizar este ejemplo de comando de ingreso, reemplaza USERNAME con tu nombre de usuario de GitHub Enterprise Server, HOSTNAME con la URL de tu instancia de GitHub Enterprise Server, y ~/TOKEN.txt con la ruta de archivo de tu token de acceso personal para GitHub Enterprise Server.

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

Publicar una imagen

Nota: El Registro de Docker del Registro del paquete de GitHub se suspenderá en un lanzamiento subsecuente de GitHub Enterprise Server por el Registro de contenedores, el cual ofrece compatibilidad de contenedores mejorada.

Nota: Los nombres de imagen deben utilizar letras en minúscula únicamente.

Registro del paquete de GitHub 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 Docker" en la documentación de Docker.

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

  1. Determina el nombre y la ID de la imagen Docker utilizando imágenes docker.

    $ docker images
    > < >
    > REPOSITORY        TAG        IMAGE ID       CREATED      SIZE
    > IMAGE_NAME        VERSION    IMAGE_ID       4 weeks ago  1.11MB
  2. Utilizando la ID de la imagen de Docker, etiqueta a la imagen de docker, reemplazando OWNER con el nombre de la cuenta de usuario u organización a la que pertenece el repositorio, REPOSITORY con el nombre del repositorio que contiene tu proyecto, IMAGE_NAME con el nombre del paquete o imagen, HOSTNAME con el nombre de host de tu instancia de GitHub Enterprise Server y VERSION con la versión del paquete y hora de compilción.

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

    .

  3. Si aún no creas una imagen de docker para el paquete, crea la imagen, reemplazando OWNER con el nombre de la cuenta de organización o usuario a la que pertenece el repositorio, REPOSITORY con el nombre del repositorio que contiene tu proyecto, IMAGE_NAME con el nombre del paquete o imagen, VERSION con la versión de paquete al momento de la compilación,HOSTNAME con el nombre de host de tu instancia de GitHub Enterprise Server, y PATH 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 Registro del paquete de GitHub.

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

    Nota: Debes subir tu imagen usando IMAGE_NAME: VERSION y no utilizar 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 usando una 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 Registro del paquete de GitHub
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0

Puedes publicar una nueva imagen de Docker por primera vez y nombrarla 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 Registro del paquete de GitHub
$ docker push docker.HOSTNAME/octocat/octo-app/monalisa:1.0

Descargar una imagen

Nota: El Registro de Docker del Registro del paquete de GitHub se suspenderá en un lanzamiento subsecuente de GitHub Enterprise Server por el Registro de contenedores, el cual ofrece compatibilidad de contenedores mejorada.

Puedes utilizar el comando docker pull para instalar una imagen de docker desde el Registro del paquete de GitHub, reemplazando OWNER con el nombre de la cuenta de usuario u organización a la que pertenece el repositorio, REPOSITORY con el nombre de repositorio que contiene tu proyecto, IMAGE_NAME con el nombre del paquete o imagen, HOSTNAME con el nombre del host de tu instancia de GitHub Enterprise Server, y TAG_NAME con la etiqueta de la imagen que quieres instalar.

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

Nota: Debes extraer la imagen utilizando IMAGE_NAME:VERSION y no así, utilizando IMAGE_NAME:SHA.

Leer más