Nota:: Registro de contenedores se encuentra actualmente en beta para GitHub Enterprise Server y está sujeto a cambios.
Both Registro del paquete de GitHub and subdomain isolation must be enabled to use Registro de contenedores. Para obtener más información, consulta la sección "Trabajar con el registro de contenedores."
Acerca de Registro de contenedores
The Registro de contenedores stores container images within your organization or personal account, and allows you to associate an image with a repository. You can choose whether to inherit permissions from a repository, or set granular permissions independently of a repository. You can also access public container images anonymously.
Para utilizar el Registro de contenedores en GitHub Enterprise Server, tu administrador de sitio primero debe configurar el Registro del paquete de GitHub para tu instancia y habilitar el aislamiento de subdominios. Para obtener más información, consulta las secciones "Iniciar con GitHub Packages para tu empresa" y "Habilitar el aislamiento de subdominios".
Acerca del soporte para el Registro de contenedores
El Registro de contenedores es actualmente compatible con los siguientes formatos de contenedores de imagen:
Cuando instalas o publicas una imagen de Docker, el Registro de contenedores es compatible con capas externas, tales como imágenes de Windows.
Autenticarse en el Registro de contenedores
Para autenticarse en el Registro de contenedores dentro de un flujo de trabajo de GitHub Actions, utiliza el GITHUB_TOKEN
para tener la mejor experiencia en seguridad. Si tu flujo de trabajo utiliza un token de acceso personal (PAT) para autenticarse en containers.HOSTNAME
, entonces te recomendamos ampliamente que lo actualices para que utilice el GITHUB_TOKEN
.
Para obtener más información sobre el GITHUB_TOKEN
, consulta la sección "Autenticación en un flujo de trabajo".
Si estás utilizando el Registro de contenedores en las acciones, sigue nuestras mejores prácticas de seguridad en "Fortalecimiento de seguridad para las Acciones de GitHub".
Asegúrate de reemplazar a HOSTNAME
con el nombre de host o dirección IP de tu instancia de servidor de GitHub Enterprise en los siguientes ejemplos.
-
Crea un token de acceso personal nuevo (PAT) con los alcances adecuados para las tareas que quieres realizar. Si tu organización requiere SSO, debes hablitarlo para tu token nuevo.
Nota: Predeterminadamente, cuando seleccionas el alcance
write:packages
para tu token de acceso personal (PAT) en la interface de usuario, también se seleccionará el alcancerepo
. El alcancerepo
ofrece un acceso amplio e innecesario, el cual te recomendamos no utilices para los flujos de trabajo de GitHub Actions en particualr. Para obtener más información, consulta la sección "Fortalecimiento de la seguridad para las GitHub Actions". Como solución alterna, puedes seleccionar solo el alcance dewrite:packages
para tu PAT en la interfaz de usuario con esta url:https://HOSTNAME/settings/tokens/new?scopes=write:packages
.- Selecciona el alcance
read:packages
para descargar imágenes de contenedor y leer sus metadatos. - Selecciona el alcance
write:packages
para descargar y cargar imágenes de contenedor y leer y escribir sus metadatos. - Selecciona el alcance
delete:packages
para borrar las imágenes de contenedor.
Para obtener más información, consulta la sección "Crear un token de acceso personal para la línea de comandos".
- Selecciona el alcance
-
Guarda tu PAT. Te recomendamos guardar tu PAT como una variable de ambiente.
$ export CR_PAT=YOUR_TOKEN
-
Utilizando el CLI para tu tipo de contenedor, ingresa en el servicio del Registro de contenedores en
containers.HOSTNAME
.$ echo $CR_PAT | docker login containers.HOSTNAME -u USERNAME --password-stdin > Login Succeeded
Subir imágenes de contenedor
Este ejemplo sube la última versión de IMAGE_NAME
.
$ docker push containers.HOSTNAME/OWNER/IMAGE_NAME:latest
Este ejemplo sube la versión 2.5
de la imagen.
$ docker push containers.HOSTNAME/OWNER/IMAGE_NAME:2.5
Cuando publicas un paquete por primera vez, la visibilidad predeterminada es privada. Para cambiar la visibilidad o configurar permisos de acceso, consulta la sección "Configurar la visibilidad y el control de accesos de un paquete".
Extraer imágenes de contenedor
Extraer por resúmen
Para garantizar que siempre utilices la misma imagen, puedes especificar la versión exacta de la imagen de contenedor que quieres extraer de acuerdo con su valor de SHA de digest
.
-
Para encontrar el valor de SHA de resúmen, utiliza
docker inspect
odocker pull
y copia el valor de SHA después deDigest:
$ docker inspect containers.HOSTNAME/OWNER/IMAGE_NAME
-
Elimina la imagen localmente de acuerdo a tus necesidades.
$ docker rmi containers.HOSTNAME/OWNER/IMAGE_NAME:latest
-
Extrae la imagen de contenedor con
@YOUR_SHA_VALUE
después del nombre de dicha imagen.$ docker pull containers.HOSTNAME/OWNER/IMAGE_NAME@sha256:82jf9a84u29hiasldj289498uhois8498hjs29hkuhs
Extraer por nombre
$ docker pull containers.HOSTNAME/OWNER/IMAGE_NAME
Extraer por nombre y versión
Ejemplo de CLI de Docker que muestra una imagen que se extrae por su nombre y por la etiqueta de la versión 1.14.1
:
$ docker pull containers.HOSTNAME/OWNER/IMAGE_NAME:1.14.1
> 5e35bd43cf78: Pull complete
> 0c48c2209aab: Pull complete
> fd45dd1aad5a: Pull complete
> db6eb50c2d36: Pull complete
> Digest: sha256:ae3b135f133155b3824d8b1f62959ff8a72e9cf9e884d88db7895d8544010d8e
> Status: Downloaded newer image for containers.HOSTNAME/orgname/image-name/release:1.14.1
> containers.HOSTNAME/orgname/image-name/release:1.14.1
Extraer por nombre y última versión
$ docker pull containers.HOSTNAME/OWNER/IMAGE_NAME:latest
> latest: Pulling from user/image-name
> Digest: sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344
> Status: Downloaded newer image for containers.HOSTNAME/user/image-name:latest
> containers.HOSTNAME/user/image-name:latest
Crear imagenes de contenedor
Este ejemplo crea la imagen hello_docker
:
$ docker build -t hello_docker .
Etiquetar las imágenes de contenedor
-
Encuentra la ID para la imagen de Docker que quieres etiquetar.
$ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > containers.HOSTNAME/my-org/hello_docker latest 38f737a91f39 47 hours ago 91.7MB > containers.HOSTNAME/my-username/hello_docker latest 38f737a91f39 47 hours ago 91.7MB > hello-world latest fce289e99eb9 16 months ago 1.84kB
-
Etiqueta tu imagen de Docker utilizando la ID ed imagen y el nombre que quieras poner a la misma, así como el destino en donde se hospedará ésta.
$ docker tag 38f737a91f39 containers.HOSTNAME/OWNER/NEW_IMAGE_NAME:latest