Desplegar una Imagen de Docker Hub de MariaDB en Google Cloud

Consejo Breve

Cuando trabajas con MariaDB en contenedores de Docker usualmente generas una Imagen personalizada que contiene todas tus personalizaciones y que normalmente usas en tu instalación local de Docker para tus pruebas. Si quieres usarla y compartirla más ampliamente necesitas cargar tu imagen al Docker Hub.

Queremos probar que nuestro imagen personalizada de MariaDB docker.io/patomx/patomariadb puede ser descargada del Docker Hub y desplegada en una Virtual Machine Instance en el componente Compute Engine de la Google Cloud Platform. Esto nos permitirá hacer otros despliegues, por ejemplo en un cluster de Kubernetes

Crear la Máquina Virtual Contenedor

Crea una nueva Máquina Virtual con los siguientes parámetros:

En Google Cloud Platform - Compute Engine - VM Instances - Create Instance

  • Name: patomariadhub
  • Type: f1-micro (1 vCPU, 0.6 GB memory)
  • Container: Deploy a container image to this VM instance.
    • Container image: docker.io/patomx/patomariadb

o si prefieres usar Cloud Shell, genera la nueva instancia de esta forma:

$ gcloud config set compute/zone us-central1-a

gcloud compute instances create-with-container patomariadhub --container-image docker.io/patomx/patomariadb --machine-type=f1-micro
Created [https://www.googleapis.com/compute/v1/projects/personal-20202/zones/us-central1-a/instances/patomariadhub].
NAME           ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP  STATUS
patomariadhub  us-central1-a  f1-micro                   10.128.0.19  34.69.91.49  RUNNING

Validar el Contenedor

Conéctate a tu máquina virtual y lista los contenedores:

pato@patomariadhub ~ $ docker ps
CONTAINER ID        IMAGE                                                                COMMAND                  CREATED             STATUS              PORTS               NAMES
8faf579a4623        patomx/patomariadb                                                   "docker-entrypoint.s…"   3 minutes ago       Up 3 minutes                            klt-patomariadhub-xwgd

Luego accede al contenedor y restaura el respaldo de datos de nuestra imagen:

pato@patomariadhub ~ $ docker exec -it 8faf579a4623 bash

root@patomariadhub:~# ls /root/*.sql
initial-db.sql

root@7cb4db2c49a9:/# mysql -u root -p < /root/initial-db.sql
Enter password:

Conéctate de forma remota a este contenedor y valida que todos los usuarios de la imagen estén presentes:

$ mysql -u remoto -p -h patomariadhub
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 23
Server version: 10.4.13-MariaDB-1:10.4.13+maria~bionic mariadb.org binary distribution

MariaDB [(none)]> use mysql
Database changed

MariaDB [mysql]> select user, host, plugin from user;
+-------------+-----------+-----------------------+
| User        | Host      | plugin                |
+-------------+-----------+-----------------------+
| mariadb.sys | localhost | mysql_native_password |
| root        | localhost | mysql_native_password |
| pato        | localhost | unix_socket           |
| remoto      | %         | mysql_native_password |
| respalda    | localhost | mysql_native_password |
| replicador  | %         | mysql_native_password |
| maxpato     | %         | mysql_native_password |
+-------------+-----------+-----------------------+
7 rows in set (0.040 sec)

¡Perfecto hemos desplegado exitosamente nuestra imagen personalizada de MariaDB en una Máquina Virtual Contenedor de Google Cloud!