Migrando de Docker Registry a Artifact Registry

Google Cloud está haciendo cambios en uno de los componentes donde guardamos nuestras imágenes de contenedores. En este caso es la migración de Docker Registry (desaparecerá el 15/05/2024) y por lo tanto debemos mover nuestras imágenes cuanto antes y usar el nuevo servicio llamado Artifact Registry.

Recordad que todo va asociado a un ID de proyecto, en mi caso será el siguiente:

  • securing-con-361-dfb259a2

1. Creando la nueva estructura en Artifact Registry

Al ir al apartado de Artifact Registry nos saldrá el siguiente mensaje:

You have gcr.io repositories in Container Registry. Create gcr.io repositories in Artifact Registry? Learn more

Pulsaremos sobre este mensaje y nos debería crear la misma carpeta que tenemos en Docker Container con los siguientes puntos geográficos:

us-docker.pkg.dev/securing-con-361-dfb259a2/gcr.io
us-docker.pkg.dev/securing-con-361-dfb259a2/us.gcr.io
europe-docker.pkg.dev/securing-con-361-dfb259a2/eu.gcr.io
asia-docker.pkg.dev/securing-con-361-dfb259a2/asia.gcr.io

Nuestro objetivo en este caso será copiar todas las imágenes que disponemos en Docker Registry a la carpeta «gcr.io» de Artifact Registry.

2. Instalando GCRANE

GCRANE es una herramienta que nos permite realizar entre otras acciones (listar, etc…) copiar en modo recursivo. Ya que sino tendríamos que ir una a una y no es factible (con docker pull etc…).

Lo haremos a través de una consola SHELL de Google Cloud:

# Descargamos GCRANE
curl -L \
https://github.com/google/go-containerregistry/releases/latest/download/go-containerregistry_Linux_x86_64.tar.gz \
-o go-containerregistry.tar.gz

# Descomprimimos e instalamos en Google Cloud Shell
tar -zxvf go-containerregistry.tar.gz
chmod +x gcrane
sudo mv gcrane /usr/local/bin/

# Comprobar
gcrane version

3. Copiando las imágenes

Una vez realizada la instalación de GCRANE tan solo tenemos que ejecutar el siguiente comando:

# Comando
gcrane cp -r gcr.io/securing-con-361-c55ccb07 us-docker.pkg.dev/securing-con-361-c55ccb07/gcr.io

# Resultado
023/11/17 11:41:03 Copying from gcr.io/securing-con-361-c55ccb07/web-dvwa:latest to us-docker.pkg.dev/securing-con-361-c55ccb07/gcr.io/web-dvwa:latest
2023/11/17 11:41:05 existing blob: sha256:3e17c6eae66cd23c59751c8d8f5eaf7044e0611dc5cebb12b1273be07cdac242
2023/11/17 11:41:06 existing blob: sha256:e9968e5981d2e2c1a5fca713862226bf0e6dda2e64d07e96a6b296d66f1e0bf2
2023/11/17 11:41:06 existing blob: sha256:eb05d18be401e875a2ff78a47d3865cd19012a78349cd223b845b3d82ddf9420
2023/11/17 11:41:06 existing blob: sha256:0c57df616dbf8a5b9046359879d7cd6fc9cef5ec09b9aa407a9f0a278764ab9e
2023/11/17 11:41:06 existing blob: sha256:2cd72dba8257b31471ac6d6978e8b1d90563e7bb93242b7a0272872c6988d41a
2023/11/17 11:41:07 existing blob: sha256:6cff5f35147f076e65e30cbf1197b15039b5edecb034d80ceae51fe2ff10951d
2023/11/17 11:41:07 existing blob: sha256:098cffd43466ac646c9ad876509

4. Evitando que la gente siga subiendo a Docker Container

Para evitar que otros usuarios sigan subiendo imágenes en Docker Container, Google nos ofrece la posibilidad de crear una ruta automática para redirigirla. Nos muestra el siguiente mensaje:

All "*gcr.io" traffic is currently routed to Container Registry. Route to Artifact Registry after copying any images you need from Container Registry. Learn more 

Si no disponemos de ese botón como es mi caso, es por los permisos que tengas en Google Cloud.

5. Comandos útiles

Para adornar la tarta (sí ahora mismo tengo hambre) vamos a dejar unos comandos útiles desde la consola.

### Container Registry ###
# Listar imágenes en Container Registry
gcloud container images list

# Listar imágenes en Container Registry Con el proyecto
gcloud container images list --repository=gcr.io/securing-con-361-c55ccb07

# Listar Repositorios de Artifacts
gcloud artifacts repositories list

# Listar Un repositorio con GCRANE
gcrane ls us-docker.pkg.dev/securing-con-361-c55ccb07/gcr.io

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *