Postgres es uno de los manejadores de bases de datos más utilizados en el mundo opensource. Veremos como instalarlo y ejecutarlo en nuestro laboratorio local de forma contenerizada con Docker.
Un ejemplo de posgres junto a una aplicación en un entorno docker:
services:
db:
image: postgres
resta
rt: always
environment:
POSTGRES_PASSWORD: example
volumes:
- pgdata:/var/lib/postgresql/data
adminer:
image: adminer
restart: always
ports:
- 8080:8080
volumes:
pgdata:Podemos ver la importancia de POSTGRES_PASSWORD en Postgres. Sin especificar esto, Postgres no puede ejecutarse de manera eficaz. Pero también hay otras variables que influyen en el comportamiento del contenedor:
POSTGRES_USER– Especifica un usuario con privilegios de superusuario y una base de datos con el mismo nombre. Postgres utiliza el usuario predeterminado cuando este campo está vacío.POSTGRES_DB– Especifica un nombre para su base de datos o el valor predeterminado POSTGRES_USERcuando se deja en blanco.POSTGRES_INITDB_ARGS– Envía argumentos postgres_initdby agrega funcionalidadPOSTGRES_INITDB_WALDIR– Define un directorio específico para el registro de transacciones de Postgres. Una transacción es una operación y, por lo general, describe un cambio en la base de datos.POSTGRES_HOST_AUTH_METHOD– Controla las auth-methodconexiones hosta allbases de datos, usuarios y direcciones.PGDATA– Define otra ubicación o subdirectorio predeterminado para los archivos de base de datosEstas variables se encuentran dentro de su .envarchivo de texto sin formato. En última instancia, determinan cómo Postgres crea y conecta bases de datos. Puede consultar nuestra documentación de la imagen oficial de Postgres en GitHub para obtener más detalles sobre las variables de entorno.
Si bien las variables de entorno son útiles, pasarlas entre el host y el contenedor no está exento de riesgos. Los secretos de Docker le permiten acceder y cargar esos valores desde archivos que ya están presentes en su contenedor. Esto evita que sus variables de entorno sean interceptadas en tránsito a través de una conexión de puerto. Puede usar el siguiente comando (y sus iteraciones) para aprovechar los secretos de Docker con Postgres:
docker run --name some-postgres -e POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd -d postgres
Nota: Los secretos de Docker solo son compatibles con determinadas variables de entorno. Consulta nuestra documentación para obtener más información.
If you see mistakes or want to suggest changes, please create an issue on the source repository.
For attribution, please cite this work as
Sosa (2024, April 12). Blog de José R Sosa: Postgres en Docker. Retrieved from https://josersosa.github.io/personalweb/posts/2026-02-01-postgres-en-docker/
BibTeX citation
@misc{sosa2024postgres,
author = {Sosa, José R},
title = {Blog de José R Sosa: Postgres en Docker},
url = {https://josersosa.github.io/personalweb/posts/2026-02-01-postgres-en-docker/},
year = {2024}
}