Vamos executar PostgreSQL apenas para praticar volumes e variáveis.
Crie:
docker volume create pgdata
Execute:
docker run -d \
--name postgres-lab \
-e POSTGRES_USER=lab \
-e POSTGRES_PASSWORD=lab123 \
-e POSTGRES_DB=laboratorio \
-v pgdata:/var/lib/postgresql/data \
postgres
A senha acima é apenas para laboratório local. Não use credenciais simples como essa em produção.
Veja logs:
docker logs postgres-lab
Entre no banco:
docker exec -it postgres-lab \
psql -U lab -d laboratorio
No PostgreSQL:
CREATE TABLE alunos (
id SERIAL PRIMARY KEY,
nome VARCHAR(100)
);
INSERT INTO alunos (nome) VALUES ('Waldo');
SELECT * FROM alunos;
Saia:
\q
Remova o container:
docker rm -f postgres-lab
Crie novamente usando o mesmo volume:
docker run -d \
--name postgres-lab \
-e POSTGRES_USER=lab \
-e POSTGRES_PASSWORD=lab123 \
-e POSTGRES_DB=laboratorio \
-v pgdata:/var/lib/postgresql/data \
postgres
Entre novamente e execute:
SELECT * FROM alunos;
O dado deverá continuar disponível.
