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!