Guía de inicio rápido para Container Registry

Container Registry es un registro de imágenes de contenedor privado que se ejecuta en Google Cloud.

Esta guía de inicio rápido te muestra cómo hacer lo siguiente:

  • Compilar una imagen de Docker
  • Enviar la imagen al Container Registry de tu proyecto
  • Extraer la imagen del Container Registry de tu proyecto

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En la página de selección de proyectos de Cloud Console, selecciona o crea un proyecto de Cloud.

    Ir a la página de selección de proyectos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita la API Container Registry.

    Habilita la API

  5. Instala e inicializa el SDK de Cloud.
  6. Instala Docker. Si usas un sistema operativo basado en Linux, como Ubuntu o Debian, agrega tu nombre de usuario al grupo docker para que puedas ejecutar Docker sin usar sudo:
    sudo usermod -a -G docker ${USER}

    Sal de tu cuenta y vuelve a acceder para que se apliquen los cambios de membresía de grupo. Si utilizas una máquina virtual, es posible que tengas que reiniciarla para que se apliquen los cambios de membresía.

  7. Abre Docker. Para asegurarte de que Docker esté funcionando, ejecuta el siguiente comando de Docker, que muestra la hora y la fecha actuales:
  8. docker run busybox date

En esta guía de inicio rápido, usa Cloud Shell o cualquier entorno en el que esté instalado el SDK de Cloud.

Compila una imagen de Docker

Para esta guía de inicio rápido, compila la siguiente imagen de Docker a fin de tener una imagen que enviar a Container Registry. Esta imagen de Docker contiene una pequeña aplicación web de Python. Esta aplicación utiliza el marco de trabajo web Flask para entregar una página web que muestra el mensaje "Hello, World!".

Haz lo siguiente, para crear la imagen de Docker:

  1. Crea un directorio para almacenar los tres archivos de imagen de Docker.

  2. En este directorio, crea tres archivos: Dockerfile, requirements.txt y app.py. Consulta los siguientes ejemplos para saber qué debes incluir en el contenido de cada archivo:

Dockerfile

# The file Dockerfile defines the image's environment
# Import Python runtime and set up working directory
FROM python:3.5-slim
WORKDIR /app
ADD . /app

# Install any necessary dependencies
RUN pip install -r requirements.txt

# Open port 80 for serving the webpage
EXPOSE 80

# Run app.py when the container launches
CMD ["python", "app.py"]

requirements.txt

# The file requirements.txt defines the image's dependencies
Flask

app.py

# The Docker image contains the following code in app.py
from flask import Flask
import os
import socket

app = Flask(__name__)

@app.route("/")
def hello():
    html = "<h3>Hello, World!</h3>"
    return html

if __name__ == "__main__":
  app.run(host='0.0.0.0', port=80)

Para compilar la imagen de Docker, ejecuta el siguiente comando de Docker desde el directorio que contiene los archivos de la imagen:

docker build -t quickstart-image .

Ahora creaste una imagen de Docker en tu máquina local.

Agrega la imagen a Container Registry

Configura docker para usar la herramienta de línea de comandos de gcloud como un auxiliar de credenciales

Antes de poder enviar o extraer imágenes, debes configurar Docker para que use la herramienta de línea de comandos de gcloud a fin de autenticar las solicitudes a Container Registry. Para ello, ejecuta el siguiente comando (solo debes hacerlo una vez):

gcloud auth configure-docker

Etiqueta la imagen con un nombre de registro

Antes de enviar la imagen de Docker a Container Registry, debes etiquetarla con su nombre de registro. Etiquetar la imagen de Docker con un nombre de registro configura el comando docker push para enviar la imagen a una ubicación específica. Para esta guía de inicio rápido, la ubicación del host es gcr.io.

A fin de etiquetar la imagen de Docker, ejecuta el siguiente comando:

docker tag quickstart-image gcr.io/[PROJECT-ID]/quickstart-image:tag1

donde:

  • [PROJECT-ID] es tu ID del proyecto de Google Cloud Console, que debes agregar a tu comando. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • gcr.io es el nombre de host.
  • quickstart-image es el nombre de la imagen de Docker.
  • tag1 es una etiqueta que agregas a la imagen de Docker. Si no especificaste una etiqueta, Docker aplicará la etiqueta predeterminada latest.

Ahora estás listo para enviar la imagen a Container Registry.

Envía la imagen a Container Registry

Una vez que docker esté configurado para usar gcloud como auxiliar de credencial y la imagen local esté etiquetada con el nombre del registro, puedes enviarla a Container Registry.

Para enviar la imagen de Docker, ejecuta el siguiente comando:

docker push gcr.io/[PROJECT-ID]/quickstart-image:tag1

donde [PROJECT-ID] es el ID del proyecto de Google Cloud Console. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

Cuando envías una imagen a una nueva ubicación de host, el servicio crea el depósito de almacenamiento subyacente único para tu proyecto. Puedes ver las imágenes alojadas en Container Registry mediante Cloud Console o en tu navegador web mediante la URL del nombre de registro de la imagen: http://gcr.io/[PROJECT-ID]/quickstart-image.

Extrae la imagen de Container Registry

Para extraer la imagen de Container Registry en tu máquina local, ejecuta el siguiente comando:

docker pull gcr.io/[PROJECT-ID]/quickstart-image:tag1

donde [PROJECT-ID] es el ID del proyecto de Google Cloud Console. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

Deberías ver un resultado similar al siguiente:

latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for gcr.io/[PROJECT-ID]/quickstart-image:tag1

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta guía de inicio rápido.

Ejecuta el siguiente comando para borrar la imagen de Docker de Container Registry.

gcloud container images delete gcr.io/[PROJECT-ID]/quickstart-image:tag1 --force-delete-tags

donde [PROJECT-ID] es el ID del proyecto de Google Cloud Console. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.

Qué sigue