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: 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.

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.

Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.

$ 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

Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:

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

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.

    Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.

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

    .

    Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:

    $ docker tag IMAGE_ID HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  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.

    Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.

    $ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH

    Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:

    $ docker build -t HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
  4. Publicar la imagen para Registro del paquete de GitHub.

    Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.

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

    Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:

    $ docker push 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

Estos ejemplos asumen que tu instancia tiene habilitado el aislamiento de subdominios.

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.

Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.

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

Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:

$ docker pull 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

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.