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 paquetes de GitHub

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

GitHub Packages se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, GitHub Enterprise Cloud, y GitHub One. GitHub Packages no está disponible para repositorios privados que pertenezcan a cuentas que utilicen planes tradicionales por repositorio. Para obtener más información, consulta la sección "Productos de GitHub".

En este artículo

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

Autenticar a GitHub Packages

Necesitas de un token de acceso para publicar, instalar, y borrar paquetes en GitHub Packages. Puedes utilizar un token de acceso personal para autenticarte con tu nombre de usuario directamente en GitHub Packages o en la API de GitHub. Puedes utilizar un GITHUB_TOKEN para autenticarte utilizando un flujo de trabajo de GitHub Actions.

Autenticando con un token de acceso personal

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

Puedes autenticarte en GitHub Packages con Docker utilizando el comando de ingreso 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.

$ cat ~/TOKEN.txt | docker login https://docker.pkg.github.com -u USERNAME --password-stdin

Utiliza este ejemplo de comando de ingreso, reemplaza USERNAME con tu nombre de usuario de GitHub y ~/TOKEN.txt con la ruta de archivo a tu token de acceso personal para GitHub.

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

Autenticando con el GITHUB_TOKEN

Si estás utilizando un flujo de trabajo de GitHub Actions, puedes utilizar un GITHUB_TOKEN para publicar y consumir paquetes en GitHub Packages sin que necesites almacenar y administrar un token de acceso personal. Para obtener más información, consulta la sección "Autenticarse con el GITHUB_TOKEN".

Publicar un paquete

GitHub Packages admite 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 la sección "Etiqueta Docker" en la documentación de Docker.

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.

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. Con la ID de la imagen Docker, etiqueta la imagen Docker, reemplazando OWNER con el nombre de la cuenta de usuario o de 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 la imagen y VERSION con la versión del paquete en tiempo de construcción.

    $ docker tag IMAGE_ID docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION
  3. Si todavía no has creado una imagen Docker para el paquete, construye la imagen, reemplazando OWNER con el nombre de la cuenta de usuario o de 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 la imagen, VERSION con la versión del paquete en tiempo de construcción y PATH a la imagen si no está en el directorio de trabajo actual.

    $ docker build -t docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
  4. Publicar la imagen para GitHub Packages.

    $ docker push docker.pkg.github.com/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

# 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 GitHub Packages
$ docker push docker.pkg.github.com/octocat/octo-app/monalisa:1.0

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

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

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

Instalar un paquete

Puedes usar el comando docker pull para instalar una imagen Docker desde GitHub Packages, reemplazando OWNER con el nombre de la cuenta de usuario o de 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 la imagen, TAG_NAME con la etiqueta para la imagen que deseas instalar. 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

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

Leer más

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos