Nota: Este tipo de paquete podría no estar disponible para su instancia, ya que los administradores de sitio pueden habilitar o inhabilitar cada tipo de paquete compatible. Para obtener más información, consulte "Configurar la compatibilidad del ecosistema de paquetes para tu empresa".
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
You need an access token to publish, install, and delete private, internal, and public packages.
You can use a personal access token (PAT) to authenticate to GitHub Packages or the GitHub Enterprise Server API. When you create a personal access token, you can assign the token different scopes depending on your needs. For more information about packages-related scopes for a PAT, see "About permissions for GitHub Packages."
To authenticate to a GitHub Packages registry within a GitHub Actions workflow, you can use:
GITHUB_TOKEN
to publish packages associated with the workflow repository.- a PAT with at least
packages:read
scope to install packages associated with other private repositories (whichGITHUB_TOKEN
can't access).
Para más información sobre el uso de GITHUB_TOKEN
en flujos de trabajo de GitHub Actions, vea "Autenticación 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 GitHub Packages. Para más información, vea "Acerca de GitHub Packages".
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 token de acceso personal en un archivo local de tu equipo y utilices la marca --password-stdin
de Docker, que lee tu token desde un archivo local.
Si la instancia tiene habilitado el aislamiento de subdominio:
$ cat ~/TOKEN.txt | docker login docker.HOSTNAME -u USERNAME --password-stdin
Si la instancia tiene deshabilitado el aislamiento de subdominio:
$ cat ~/TOKEN.txt | docker login HOSTNAME -u USERNAME --password-stdin
Para utilizar este ejemplo de comando de inicio de sesión, reemplaza USERNAME
por tu nombre de usuario de GitHub Enterprise Server, HOSTNAME
por la URL de your GitHub Enterprise Server instance, y ~/TOKEN.txt
por la ruta de archivo de tu token de acceso personal para GitHub Enterprise Server.
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 Enterprise Server 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 más información, vea "Visualización de paquetes".
-
Determina el nombre y la id. de la imagen Docker mediante
docker images
.$ docker images > <� > > REPOSITORY TAG IMAGE ID CREATED SIZE > IMAGE_NAME VERSION IMAGE_ID 4 weeks ago 1.11MB
-
Utilizando la id. de la imagen de Docker, etiqueta a la imagen de docker, reemplazando OWNER por el nombre de la cuenta de usuario u organización a la que pertenece el repositorio, REPOSITORY por el nombre del repositorio que contiene tu proyecto, IMAGE_NAME por el nombre del paquete o imagen, HOSTNAME por el nombre de host de your GitHub Enterprise Server instance, y VERSION por la versión del paquete en tiempo de compilación. Si la instancia tiene habilitado el aislamiento de subdominio:
$ docker tag IMAGE_ID docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
Si en la instancia se ha deshabilitado el aislamiento de subdominios:
$ docker tag IMAGE_ID HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
-
Si aún no has compilado una imagen de Docker para el paquete, compila la imagen, reemplazando OWNER por el nombre de la cuenta de organización o usuario a la que pertenece el repositorio, REPOSITORY por el nombre del repositorio que contiene tu proyecto, IMAGE_NAME por el nombre del paquete o imagen, VERSION por la versión de paquete en tiempo de compilación, HOSTNAME por el nombre de host de your GitHub Enterprise Server instance, y PATH en la imagen en caso de que no esté en el directorio de trabajo actual. Si la instancia tiene habilitado el aislamiento de subdominio:
$ docker build -t docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
Si en la instancia se ha deshabilitado el aislamiento de subdominios:
$ docker build -t HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION PATH
-
Publicar la imagen para GitHub Packages. Si la instancia tiene habilitado el aislamiento de subdominio:
$ docker push docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
Si en la instancia se ha deshabilitado el aislamiento de subdominios:
$ docker push HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:VERSION
Nota: Debes insertar la imagen con
IMAGE_NAME:VERSION
en lugar de conIMAGE_NAME:SHA
.
Ejemplo de publicación de una imagen Docker
En estos ejemplos se da por hecho que la instancia tiene habilitado el aislamiento de subdominio.
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 Enterprise Server por Container registry, que ofrece compatibilidad con contenedores mejorada.
Puedes utilizar el comando docker pull
para instalar una imagen de Docker desde GitHub Packages, reemplazando OWNER por el nombre de la cuenta de usuario u organización a la que pertenece el repositorio, REPOSITORY por el nombre de repositorio que contiene tu proyecto, IMAGE_NAME por el nombre del paquete o imagen, HOSTNAME por el nombre del host de your GitHub Enterprise Server instance, y TAG_NAME por la etiqueta de la imagen que quieres instalar.
Si en la instancia se ha habilitado el aislamiento de subdominios:
$ docker pull docker.HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME
Si en la instancia se ha deshabilitado el aislamiento de subdominios:
$ docker pull HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME
Nota: Debes extraer la imagen con IMAGE_NAME:VERSION
en lugar de con IMAGE_NAME:SHA
.