Introducción
Hoy en día, Postgres es una de las imágenes Docker más utilizadas que se ejecutan en contenedores. La popularidad de las bases de datos en contenedores se atribuye a la simplicidad con la que se pueden implementar. Además, en lugar de tener una base de datos centralizada para muchas aplicaciones, los desarrolladores pueden dedicar un contenedor PostgreSQL para cada aplicación.
En este tutorial, aprenderá a ejecutar PostgreSQL en un contenedor Docker.
Requisitos previos
- Acceso a una línea de comando/ventana de terminal
- Una cuenta de usuario con sudo privilegios
- Una instalación de Docker existente
Ejecución de PostgreSQL en contenedores Docker
Implementar un contenedor de Postgres es simple. Puede encontrar la imagen de Postgres para crear estos contenedores de bases de datos en el repositorio oficial de Docker.
Esta guía le muestra dos formas de hacerlo.
La primera opción usa Docker Compose , una herramienta para gestionar aplicaciones Docker multicontenedor. Puede usar Docker Compose para configurar Postgres como un servicio que se ejecuta dentro de un contenedor. En ese caso, crea un yaml archivo con todas las especificaciones.
Alternativamente, puede usar a comando único de Docker con toda la información necesaria para implementar un nuevo contenedor de PostgreSQL.
Opción 1:ejecutar Postgres mediante Docker Compose
Para implementar un contenedor Postgres usando Docker Compose, debe tener esta herramienta Docker configurada en su sistema.
Si es usuario de Linux y necesita ayuda con la configuración, consulte una de nuestras guías sobre cómo instalar Docker Compose en Ubuntu o cómo instalar Docker Compose en CentOS.
1. Para asegurar una instalación fácil y limpia, primero queremos crear un directorio de trabajo llamado postgres y pasar a ese directorio:
mkdir postgres
cd postgres/
2. A continuación, utilice Docker Compose para descargar la imagen de Postgres y poner en marcha el servicio. Haga esto creando un nuevo docker-compose.yml archivo con un editor de su elección (en este ejemplo, usamos nano):
nano docker-compose.yml
3. Agregue el siguiente contenido a docker-compose archivo:
version: ‘3’
service:
postgres:
image: ‘postgres: latest’
ports:
- “5432:5432”
El archivo de configuración de yaml indica que hay un postgres
servicio, basado en la latest postgres image
. Puede elegir la versión más reciente de Postgres o especificar el número de versión que desea utilizar.
Finalmente, debe definir los puertos en los que se comunica el contenedor. 5432
es el número de puerto predeterminado para PostgreSQL.
4. Guarde y salga del archivo.
5. Ahora que tiene el archivo de configuración de yaml, puede iniciar el servicio de postgres y ejecutar el contenedor. Usa el docker-compose up
comando con -d
opción para ponerlo en modo de separación (lo que le permite continuar ejecutando comandos desde el shell actual):
docker-compose up -d
6. Puede consultar los registros con el comando:
docker-compose logs -f
Para volver al shell presione CTRL+C .
Opción 2:ejecutar Postgres con un solo comando de Docker
Otra forma de implementar PostgreSQL en un contenedor es ejecutando un solo comando docker.
Puede descargar y ejecutar un contenedor de Postgres especificando toda la información necesaria en un solo comando.
docker run --name [container_name] -e POSTGRES_PASSWORD=[your_password] -d postgres
El comando le dice a Docker que ejecute un nuevo contenedor con un nombre de contenedor particular, define la contraseña de Postgres y descarga la última versión de Postgres.
Confirme que su contenedor PostgreSQL ahora está activo solicitando a Docker que enumere todos los contenedores en ejecución con:
docker ps
En esta guía, creamos un contenedor llamado example y podemos localizarlo rápidamente entre otros contenedores en ejecución.
Empezando con contenedores de Postgres
Conéctese a Postgres en Docker Container
Para ingresar a un contenedor de Postgres, debe ejecutar usando el nombre del contenedor y habilitar psql
, la interfaz de línea de comandos para Postgres.
docker exec -it [container_name] psql -U [postgres_user]
En el siguiente ejemplo, nos conectamos con el example
contenedor como postgres
usuario.
Crear una base de datos
Una vez en el contenedor Docker Postgres, podemos crear una base de datos con:
create database [db_name];
Conéctese a la base de datos como el tipo de usuario de postgres:
\c [db_name]
Con la base de datos configurada, el siguiente paso es crear un esquema que lo ayude a obtener una representación lógica de la estructura de la base de datos:
create schema [db_schema_name]
Aquí puede crear una tabla y agregar datos a la tabla.
create table [table_name] ([field_names] [values])