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

Ejecución de PostgreSQL en Docker, una guía rápida y práctica

Este tutorial lo guiará a través de cómo ejecutar PostgreSQL con almacenamiento persistente dentro de un contenedor Docker y conectarse a él.

PostgreSQL es un sistema de gestión de base de datos relacional de objetos de código abierto. Ha existido durante más de 30 años y se anuncia como "la base de datos relacional de código abierto más avanzada del mundo".

Docker se ha convertido en un estándar en la industria de TI para empaquetar, implementar y ejecutar aplicaciones distribuidas con facilidad. Los contenedores Docker le permiten ejecutar rápidamente nuevas aplicaciones sin saturar su sistema con dependencias.

Puede usar Docker para ejecutar una base de datos PostgreSQL en un contenedor como servidor remoto. Los contenedores Docker se basan en estándares abiertos, lo que permite que los contenedores se ejecuten en las principales distribuciones de Linux, macOS y Microsoft Windows.

Ejecutar PostgreSQL en Docker

Haremos aquí para descargar la imagen de PostgreSQL, verificar que la imagen esté lista, ejecutar la imagen con parámetros específicos y finalmente conectarnos a la instancia de PostgreSQL en ejecución.

1. Obtener una imagen Docker del servidor PostgreSQL

Primero, necesitamos obtener una imagen oficial de PostgreSQL existente de Docker Hub. Las imágenes están disponibles para las versiones 9, 10, 11, 12 y 13 de PostgreSQL. Cambie el latest etiquete a la versión requerida si necesita una versión específica.

Ahora saquemos la imagen:

sudo docker pull postgres:latest

El uso del comando anterior extraerá la última versión disponible de PostgreSQL del repositorio de Docker Hub.

2. Ejecute un contenedor desde la imagen Docker del servidor PostgreSQL

Antes de implementar, deberá configurar un volumen de Docker o un montaje de enlace para mantener su base de datos. De lo contrario, sus datos se perderán cuando se reinicie el contenedor. El montaje debe realizarse en /var/lib/postgresql/data directorio dentro del contenedor.

Crearemos un volumen acoplable para esta guía y lo adjuntaremos a su contenedor de PostgreSQL.

El siguiente comando creará el volumen en su máquina local, que podrá conectar con el contenedor de PostgreSQL más adelante:

sudo docker volume create postgres-volume

Ahora que tiene una imagen de PostgreSQL en su máquina y un volumen para conservar los datos, puede implementar un contenedor con:

sudo docker run -d --name=postgres13 -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=[your_password] postgres

El comando docker run creará una base de datos PostgreSQL en ejecución dentro de un contenedor Docker.

Analicemos esta sintaxis. Primero, esto es lo que significa cada parámetro en ese comando:

  • -d ejecutará este contenedor en un modo separado para ejecutarlo en segundo plano.
  • --name asigna el nombre postgres13 a su instancia de contenedor.
  • -p vinculará el puerto del contenedor PostgreSQL 5432 al mismo puerto en su máquina host. Podrá conectarse a localhost:5432 usando clientes PostgreSQL (psql ) ejecutándose en su host.
  • -v opción vincular esa carpeta de datos dentro del volumen del contenedor (/var/lib/postgresql ) al volumen Docker local (postgres-volume ) que creó en el paso anterior.
  • -e establece una variable de entorno. En este caso, la contraseña raíz de PostgreSQL.
  • postgres es el nombre de la imagen que usamos para crear el contenedor.

Puede verificar si el contenedor se está ejecutando enumerando los contenedores en ejecución:

sudo docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMES
6cb3293fe725   postgres   "docker-entrypoint.s…"   19 minutes ago   Up 19 minutes   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   postgres13

¡Felicidades! Su nueva instancia de PostgreSQL ahora se está ejecutando en Docker.

Además, puede verificar el archivo de registro del contenedor de PostgreSQL en ejecución con el siguiente comando:

sudo docker logs postgres13

3. Conéctese al servidor PostgreSQL

Puede obtener un shell interactivo de PostgreSQL adjuntándolo al contenedor y ejecutando psql dominio. Esto proporciona la interfaz de línea de comandos completa de PostgreSQL para usar todos los comandos y banderas familiares.

sudo docker exec -it postgres13 psql -U postgres

También puede conectarse con la instancia Docker de PostgreSQL usando psql Cliente PostgreSQL si lo tiene preinstalado en su host.

psql -h localhost -U postgres

Conclusión

Uno de los casos de uso más importantes del uso de Docker es la facilidad de crear y acceder a aplicaciones integradas en contenedores sin preocuparse por las dependencias y las instalaciones.

En este tutorial, aprendimos a configurar un servidor PostgreSQL usando Docker en lugar de la máquina host real.

Con una arquitectura de microservicios en la que diferentes microservicios dependen de sus bases de datos, la implementación de servidores PostgreSQL como contenedores Docker se ha vuelto común.

También se usa ampliamente para la ejecución local o pruebas de integración de extremo a extremo en un entorno aislado.

Hágame saber si tiene alguna pregunta o sugerencia, y estaré encantado de hacer un seguimiento con usted.


Docker
  1. Cómo ejecutar Nginx en un contenedor Docker:una guía paso a paso

  2. ¿Qué es Docker (y los contenedores de Linux?)

  3. Cómo ejecutar un comando en un contenedor Docker en ejecución

  4. Cómo implementar PostgreSQL como un contenedor Docker

  5. Guía completa para principiantes sobre el registro de Docker

Guía de Docker:implementación de Ghost Blog con MySQL y Traefik con Docker

Cómo instalar y usar Docker en Ubuntu 22.04

Cómo limpiar y eliminar imágenes de Docker

.NET Core y Docker

Creación, ejecución y prueba de .NET Core y ASP.NET Core 2.1 en Docker en una Raspberry Pi (ARM32)

.NET y Docker