0% encontró este documento útil (0 votos)
57 vistas5 páginas

Base de Datos - Docker

El documento proporciona instrucciones sobre cómo configurar y ejecutar un contenedor de PostgreSQL y PgAdmin utilizando Docker y Docker Compose. Incluye la creación de archivos de configuración, comandos para iniciar y detener contenedores, y cómo acceder y manipular bases de datos. También se detallan comandos para insertar, exportar y eliminar datos en las tablas de la base de datos.

Cargado por

igauler
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
57 vistas5 páginas

Base de Datos - Docker

El documento proporciona instrucciones sobre cómo configurar y ejecutar un contenedor de PostgreSQL y PgAdmin utilizando Docker y Docker Compose. Incluye la creación de archivos de configuración, comandos para iniciar y detener contenedores, y cómo acceder y manipular bases de datos. También se detallan comandos para insertar, exportar y eliminar datos en las tablas de la base de datos.

Cargado por

igauler
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Para ver la versión del Docker instalado

$ docker -v
version 24.0.2 , build cb74dfc

$ docker - compose -v
Docker Compose version v2 .19.1

Cómo levantar un contenedor?


Tenemos que crear dos archivos, primero es el Dockerfile con el siguiente contenido:

FROM postgres:14.1-alpine
LABEL author="BDD-Fiuba"
LABEL description="Postgres Image for BDD-FIUBA"
LABEL version="1.0"
COPY *.sql /docker-entrypoint-initdb.d/

El segundo es el [Link] con el siguiente contenido:

version: '3.9'
services:
# Servicio para PostgreSQL
postgres:
build:
context: .
dockerfile: Dockerfile
image: postgres:14
container_name: bdd_postgres_db
restart: always
environment:
POSTGRES_DB: bdd_db
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin123
ports:
- "5434:5432"
volumes:
- ./data/postgres:/var/lib/postgresql/data

# Servicio para PgAdmin


pgadmin:
image: dpage/pgadmin4:7.5
container_name: bdd_pg_admin
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: admin@[Link]
PGADMIN_DEFAULT_PASSWORD: admin123
ports:
- "5050:80"
Estos dos archivos nos van a permitir descargar la imagen de PostgresSQL que posee el
motor de base de datos y adem´as pgadmin para poder administrar la base de datos.

Comandos para iniciar los contenedores


Ejecutando el siguente comando para poder crear los containers de estos dos servicios:
$ docker-compose up -d
Si queremos apagar los containers:
$ docker-compose down
Tenemos otro comando util de docker, para listar todos los containers que tenemos
corriendo y su informacion:
$ docker ps -a

1. Creación de los archivos de configuración


Asegúrate de tener los siguientes archivos en tu directorio de trabajo:

[Link] : Este archivo contiene la configuración de tus servicios.


Dockerfile : Este archivo contiene las instrucciones para construir la imagen de
PostgreSQL si es necesario.
Archivos SQL (por ejemplo, [Link] ): Estos archivos contienen scripts SQL que
quieres ejecutar al inicializar la base de datos.

2. Ejecución de Docker Compose


Ejecuta el siguiente comando en tu terminal para iniciar los servicios definidos en tu archivo
[Link] :

docker-compose up -d

El flag -d ejecuta los contenedores en segundo plano.

3. Acceso a PostgreSQL
Una vez que los contenedores estén en ejecución, puedes acceder a PostgreSQL dentro del
contenedor siguiendo estos pasos:

a. Acceso al contenedor de PostgreSQL

docker exec -it bdd_postgres_db bash

Este comando te llevará al interior del contenedor de PostgreSQL.

b. Conexión a PostgreSQL mediante


psql Dentro del contenedor, puedes utilizar el cliente psql` para conectarte a
PostgreSQL. Ejecuta el siguiente comando:

psql -U admin -d bdd_db

Este comando te conectará a la base de datos bdd_db utilizando el usuario admin .


También puedes omitir -d bdd_db y conectar automáticamente a la base de datos
especificada en la variable de entorno POSTGRES_DB .

Acceso a PgAdmin
Inicio en la aplicación de PgAdmin y creo un server con los datos que puse en los archivos
de creación

Crear una base de datos


puedo hacerlo desde la interfaz haciendo click derecho sobre Database y creando una
database o puedo hacerlo con la consola con

psql -h localhost -p nro_host -U admin nombre_DB

cuando esté en consola dentro de mi base de datos ejecuto \l y voy a tener la lista de la
base de datos

Con \dt voy a tener una lista de las tablas que tenemos.

Crear una tabla


Tengo que ir a Schemas-public darle click derecho y query tool
Para crear tablas voy a definir de la siguiente manera

-- Crear tabla football_stats


CREATE TABLE football_stats (
team VARCHAR(100) PRIMARY KEY,
players_used INTEGER,
avg_age DECIMAL(5,2),
possession DECIMAL(5,2),
games INTEGER,
goals INTEGER,
assists INTEGER,
cards_yellow INTEGER,
cards_red INTEGER
);

Para ver todas las tablas ejecuto select * from football_stats;

si toco \x tengo otra forma de visualizar las cosas


Cargar cosas a la base de docker
docker cp "ubicación de archivo" "nombre_container_docker:/"
para saber el nombre_container_docker lo veo en el archivo [Link].

Entrar en mi docker por consola


docker exec -ti "nombre_BD_docker" bash

Insertar cosas a mi base de datos


-- forma manual de insertar las cosas
INSERT INTO football_stats (team, players_used, avg_age, possession,
games, goals, assists, cards_yellow, cards_red)
VALUES
('ARGENTINA', 24, 28.4, 57.4, 7, 15, 8, 17, 0),
('AUSTRALIA', 20, 28.7, 37.8, 4, 3, 3, 7, 0),
('BELGIUM', 20, 30.6, 57.0, 3, 1, 1, 5, 0);

-- Si quiero importar desde un [Link] (en este caso


football_stats.csv)
COPY football_stats
FROM '/[Link]'
DELIMITER ';'
CSV HEADER -- para que tome la primera fila como header
ENCODING 'UTF-8'; -- para que tome la codificación correcta

Si quiero dropear las tablas


-- Eliminar tabla si existe
DROP TABLE IF EXISTS football_stats;
DROP TABLE IF EXISTS matches;

Para exportar y para restaurar


-- export
pg_dump -F mundial > [Link]
pg_dump -F mundial > [Link]

-- restore
pg_restore -F mundial > [Link]
pg_restore -F mundial > [Link]

Delete
Si quiero eliminar todo el contenido de alguna tabla puedo ejecutar
delete from teams;
Si quiero eliminar solo algunas filas hago:
delete from teams where team = 'ARGENTINA'

También podría gustarte