docker volume
Containers são descartáveis, dados não: crie um volume, monte com -v, e veja ele sobreviver ao docker rm.
>_ Teste aqui: um Linux simulado, nesta páginanada roda no seu computador
Carregando o terminal…
Exemplos
-
docker volume create db-data -
docker run -d --name db -e POSTGRES_PASSWORD=secret -v db-data:/var/lib/postgresql/data postgres -
docker volume ls -
docker volume inspect db-data -
docker rm -f db -
docker volume ls
Como funciona
Os arquivos escritos dentro de um container somem junto com ele. Um volume é um espaço que o Docker guarda fora do container: monte com -v NAME:/path e o que for escrito ali fica.
É assim que bancos de dados rodam no Docker: apague e recrie o container (versão nova, configurações novas) montando o mesmo volume — os dados continuam lá.
Sintaxe
docker volume create|ls|inspect|rm [NOME] · docker run -v NOME:CAMINHO IMAGEM
Opções
| Opção | O que faz |
|---|---|
create NAME | cria um volume com nome |
-v NAME:PATH | monta no container em CAMINHO |
ls | lista os volumes |
inspect NAME | detalhes, como onde ele fica na máquina |
rm NAME | apaga (só quando nenhum container usa) |
Bom saber
- O
docker run -v db-data:/pathcria o volume sozinho se ele ainda não existe. - Com um caminho de pasta em vez de nome (
-v ./site:/usr/share/nginx/html) você monta uma pasta da sua máquina — um bind mount.