GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Implementar una instalación de MariaDB de Docker de producción

Si planea instalar MariaDB en su sistema, es posible que desee aislarlo del resto del sistema para que no rompa nada. De acuerdo, puede usar una máquina virtual, pero requeriría muchos recursos ya que tendrá que instalar un sistema completo encima de otro. Entonces, ¿por qué no implementar un Docker para MariaDB?

Si tiene hardware limitado, no hay problema, ¡Docker puede ayudarlo! Docker es una solución de virtualización ligera. Y en este tutorial, aprenderá a implementar un Docker de producción para la instalación del servidor MariaDB dentro de un contenedor Docker con menos uso de recursos.

¡Sigue leyendo y nunca más desperdicies tus recursos!

Requisitos previos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de tener lo siguiente.

  • Una máquina Linux:esta demostración usa Ubuntu 20.04 LTS, pero cualquier distribución de Linux funcionará.
  • Docker instalado en su máquina.
  • Un usuario no root con privilegios sudo.

Trabajar con Imagen de MariaDB Docker

La mejor manera de comenzar a trabajar con MariaDB en su máquina es utilizando la imagen oficial de Docker para MariaDB. La imagen contiene una instalación de la última versión estable de MariaDB, además de algunos scripts para ayudarlo a administrar el contenedor.

1. Ejecute la apt update comando a continuación para asegurarse de que su sistema esté actualizado. Este comando obtiene las últimas listas de paquetes de los repositorios de Ubuntu e instala los paquetes disponibles.

sudo apt update -y

2. A continuación, ejecute systemctl Comando a continuación para iniciar docker Servicio.

sudo systemctl start docker

Iniciar el servicio Docker no proporciona una salida. Pero si ejecuta comandos relacionados con la ventana acoplable mientras la ventana acoplable no se está ejecutando, obtendrá el siguiente error.

3. Ejecute el docker status comando a continuación para asegurarse de que docker el servicio se está ejecutando.

 sudo service docker status 

A continuación, puede ver que el servicio Docker está activo (en ejecución).

4. Finalmente, ejecute gpasswd Comando a continuación para agregar su usuario actual a la docker grupo. Hacerlo le permite al usuario ejecutar docker comandos

sudo gpasswd -a "${USER}" docker

Añadir el usuario actual a la docker group lo salva del siguiente error al ejecutar un comando docker.

5. Ejecute la siguiente docker search comando para buscar la imagen de MariaDB. Este comando busca en Docker Hub (conjunto oficial de repositorios) imágenes que coincidan con mariadb y devuelve los resultados.

sudo docker search mariadb

Marque cualquier imagen que desee usar para instalar MariaDB. Esta demostración usa la imagen oficial llamada mariadb porque está bien mantenida.

La columna OFICIAL muestra un estado OK si una imagen es oficial. Si la imagen no tiene el estado OK, la imagen es aportada por un desarrollador de la comunidad. En ese caso, deberá ponerse en contacto con el desarrollador si tiene problemas con la imagen.

6. Ahora ejecuta docker pull comando para descargar la imagen que eligió (en el paso cinco) del repositorio de Docker. Este comando descarga (pull ) la imagen seleccionada de su repositorio oficial y la guarda en su máquina local.

sudo docker pull mariadb

Cuando se complete el comando, obtendrá la última versión estable de la imagen de MariaDB en su servidor, como se muestra a continuación.

Si prefiere instalar versiones anteriores, puede usar las etiquetas disponibles para esa imagen. Navegar a Etiquetas de imagen columnas en dockerhub para ver todas las versiones, luego ejecute el comando docker pull y especifique la versión exacta, como se muestra a continuación. sudo docker pull mariadb:10.2

7. Finalmente, ejecute las docker images Comando para enumerar todas las imágenes presentes en su servidor. En este punto, debe tener una imagen Docker de MariaDB válida en su servidor.

sudo docker images

A continuación, puede ver que mariadb es el nombre de la imagen acoplable con una etiqueta como más reciente.

Creación de un contenedor MariaDB para ejecutar un servidor MariaDB local

Ahora que tiene la imagen de MariaDB en su servidor, puede ejecutar un contenedor usando esa imagen. Un contenedor es un entorno de tiempo de ejecución portátil, aislado y controlado por recursos que se ejecuta sobre un sistema operativo.

Primero debe crear un nuevo opt/mariadb/backup directorio en su servidor para almacenar el archivo de copia de seguridad que creará en esta demostración. Hacer una copia de seguridad de sus datos en su entorno de producción es fundamental antes de realizar cambios si algo sale mal.

Cuando cambia el volumen interno de un contenedor, ese cambio se copia en el directorio de host asignado. Entonces, para mantener una copia de seguridad de todos los datos del contenedor, creará el volumen en el servidor local.

1. Ejecute el siguiente comando para crear el opt/mariadb/backup directorio. El -p La opción garantiza que el directorio principal existe antes de crear este directorio.

Si alguno de los directorios principales en la ruta no existe, el comando fallará.

sudo mkdir -p opt/mariadb/backup

2. A continuación, ejecute docker run Comando a continuación para crear un contenedor Docker desde mariadb imagen. Este comando realiza lo siguiente:

  • Mapas (-v ) el directorio predeterminado para almacenar los datos de MariaDB (/var/lib/mysql ) en su contenedor Docker en su directorio de host (/opt/mariadb/backup ).
  • Declara la variable de entorno MariaDB (-e ) MYSQL_ROOT_PASSWORD para mantener la contraseña de root para el servidor MariaDB. Asegúrese de reemplazar ata123 con su contraseña segura.
  • Le dice a Docker que inicie el contenedor en modo separado (-d ), por lo que el contenedor se ejecuta en segundo plano. Si lo hace, podrá salir de la sesión actual y seguir trabajando mientras este contenedor se ejecuta en segundo plano. De lo contrario, obtendrá un mensaje en blanco y tendrá que eliminar el contenedor en ejecución.
  • Especifica el nombre del contenedor (--name mariadbata ) crear. Puedes reemplazar mariadbata con su nombre único preferido.
  • Expone el puerto MariaDB predeterminado 3306 a la máquina host (-p 3306:3306 ) (donde el servicio MariaDB escucha las conexiones de sus clientes). En el caso del servidor de producción, asignará el puerto predeterminado al puerto de producción. Pero puedes reemplazar 3306 con algún otro número de puerto de producción.
sudo docker run --name mariadbata -p 3306:3306 -v /opt/mariadb/backup:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ata123 -d mariadb

En este punto, el contenedor se crea y se ejecuta en segundo plano, pero nunca se puede estar demasiado seguro. Por lo tanto, verificará el contenedor en el siguiente paso.

3. Ejecute docker ps comando para verificar si su contenedor Docker está activo o no.

sudo docker ps

Puede ver a continuación que el contenedor mariadbata ha estado activo desde hace 7 minutos, escuchando en el puerto 3306 en todas las interfaces de host. También puede ver el ID (3a7fa779b559) del contenedor.

Puede usar este ID único para conectarse al contenedor, listar contenedores, detener contenedores o eliminar el contenedor.

4. Ahora, ejecute docker exec Comando a continuación para verificar la versión del servidor MariaDB dentro de mariadbata envase.

sudo docker exec -it mariadbata mysql -V

Al momento de escribir, la última versión de mariadb es 10.6.5, como se muestra a continuación, y su versión puede ser diferente. Dado que MariaDB es una bifurcación de MySQL, Docker usó el cliente mysql como cliente predeterminado para interactuar con el servicio MariaDB que se muestra a continuación.

5. Ejecute el siguiente comando para ingresar al shell de MariaDB (/bin/bash ).

sudo docker exec -it mariadbata /bin/bash

El indicador cambia del shell de Ubuntu al shell de MariaDB, como se muestra a continuación.

Puede ver a continuación el ID del contenedor (3a7fa779b559) que vio en el paso tres. Ver el ID del contenedor en el indicador indica que actualmente se encuentra dentro del contenedor mariadbata.

Cuando esté dentro del contenedor, puede ejecutar cualquier comando con el prefijo sudo ya que ahora es el usuario raíz de este contenedor.

Por ejemplo, puede ejecutar el siguiente comando apt update para actualizar la base de datos del paquete dentro del contenedor sin el prefijo sudo.

apt update -y

6. Finalmente, ejecute exit comando para salir del shell de MariaDB y volver al shell de host de Ubuntu.

exit

Acceder a MariaDB Shell desde el terminal host

También puede acceder al shell de MariaDB directamente desde la terminal del host instalando el cliente de MariaDB en el host. Si lo hace, es útil en situaciones en las que no desea cambiar a la carcasa del contenedor cada vez.

1. Ejecute apt install Comando a continuación para instalar el cliente MariaDB en su host Ubuntu.

sudo apt install -y mariadb-client

2. A continuación, ejecute docker inspect Comando a continuación para encontrar la dirección IP del contenedor en ejecución.

sudo docker inspect container-name | grep IPAddress

3. Ahora ejecute mysql comando a continuación para conectarse a la instancia de la base de datos desde su host (-h ) con su nombre de usuario (root ) y contraseña (-p ). Recuerde reemplazar host_ip con la dirección IP de su contenedor Docker en ejecución.

sudo mysql -u root -p -h host_ip

4. Introduzca la contraseña que configuró anteriormente (ata123 ) en el paso dos cuando se le solicite, y se le presentará el mensaje del cliente de MariaDB, como se muestra a continuación.

Luego puede ejecutar cualquier código SQL que necesite ejecutar en el servidor MariaDB.

5. Finalmente, ejecute ls Comando a continuación para enumerar los archivos de copia de seguridad (opt/mariadb/backup ) del contenedor MariaDB.

ls -l opt/mariadb/backup

Verá una lista de archivos similares a continuación. El resultado indica que ha creado correctamente una copia de seguridad del contenedor mariadbata. Puede copiar los archivos a otra ubicación en su host si es necesario.

Detención y extracción del contenedor

Quizás desee liberar recursos de RAM o CPU. Si es así, puede detener el contenedor ejecutando docker stop comando y especificando el ID del contenedor o el nombre del contenedor.

1. Ejecute cualquiera de los siguientes comandos para detener un contenedor específico.

# Stops Container by Container Name (mariadbata)
sudo docker stop mariadbata
# Stops Container by Container ID (3a7fa779b559)
sudo docker stop 3a7fa779b559

En este punto, el contenedor se detiene, pero seguirá viviendo en su host y los datos permanecerán.

2. Ahora, ejecuta docker ps comando a continuación para enumerar todos (-a ) contenedores.

docker ps -a

Como puede ver a continuación, el contenedor aún se muestra pero está en estado Salido, lo que indica que el contenedor está detenido.

3. Finalmente, ejecute el siguiente comando para eliminar (rm ) el contenedor detenido (mariadbata ). La capacidad de eliminar un contenedor es útil cuando quizás la imagen de Docker no cumpla con sus requisitos, o si simplemente desea comenzar de nuevo.

Tenga en cuenta que primero debe detener el contenedor antes de eliminarlo con el comando docker rm.

sudo docker rm mariadbata

Si prefiere eliminar todo el contenedor con sus volúmenes de datos para ahorrar recursos, agregue la opción -v con el comando sudo docker como el que se muestra a continuación.

sudo docker rm -v mariadbata

Ahora vuelva a ejecutar el comando docker ps a continuación para enumerar todos los contenedores y verificar que el contenedor se haya eliminado por completo.

docker ps -a

Como ves a continuación, la mariadbata el contenedor se ha ido junto con todos sus datos.

Conclusión

En este tutorial, aprendió a crear un contenedor MariaDB Docker en su máquina host Ubuntu. También aprendió a crear almacenamiento persistente para sus contenedores Docker utilizando contenedores de volumen de datos para realizar una copia de seguridad de los datos del contenedor.

En este punto, ahora puede crear y administrar su propio contenedor MariaDB Docker en Ubuntu.

Ahora, ¿por qué no crear un flujo de trabajo Buddy CI/CD utilizando un contenedor MariaDB Cocker como su base de datos con este nuevo conocimiento? ¿O incluso crear un servicio MariaDB para sus aplicaciones?


Docker
  1. Instalación de Docker en RHEL 7 Linux

  2. Implemente WordPress en Docker usando Ansible

  3. Implemente Nextcloud en Docker usando Ansible

  4. ¿Extraer archivo de la imagen de Docker?

  5. Cómo usar un Dockerfile para crear una imagen de Docker

Docker:Cómo usarlo de manera práctica - Parte 3

Una breve introducción a Dockerfile

Cómo implementar Pi-Hole en Debian 11

¿Qué es un manifiesto de imagen de Docker?

Cómo reducir el tamaño de la imagen de Docker en los contenedores de Docker

Compartir imágenes de Docker en Docker Hub