3.1 Fundamentos da montagem de volumes
A montagem de volumes em containers é uma das funções principais do Docker, que permite salvar dados fora dos containers, garantindo o armazenamento a longo prazo e a disponibilidade deles. Os volumes podem ser usados pra várias finalidades, incluindo armazenamento de arquivos de configuração, bancos de dados, logs e outros dados importantes. Nesta aula, a gente vai ver como montar volumes em containers e dar exemplos práticos.
Fundamentos da montagem de volumes
Os volumes, como já mencionamos, existem independentemente do ciclo de vida dos containers. Eles ficam armazenados numa pasta especial na máquina host e podem ser conectados a qualquer container.
Comando pra montar volumes
Os volumes são montados em containers com os parâmetros -v
ou --mount
ao iniciar o container.
3.2 Parâmetro -v
Exemplos de uso do parâmetro -v
1. Montando um volume em um container
Criando um volume e montando ele no container:
Criando o volume:
docker volume create my_volume
Executando o container com o volume montado:
docker run -d --name my_container -v my_volume:/app nginx
Nesse exemplo, o volume my_volume
é montado no diretório /app
do container my_container
2. Montando vários volumes
Você pode montar vários volumes em um único container:
docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx
Nesse exemplo, o volume volume1
é montado no diretório /app/data
, e o volume volume2
é montado no diretório /app/logs
.
3.3 Parâmetro --mount
O parâmetro --mount
fornece uma maneira mais detalhada de montar volumes, com a opção de especificar vários parâmetros.
1. Montagem de volume usando --mount
docker run -d --name my_container --mount source=my_volume,target=/app nginx
Este exemplo é semelhante ao exemplo anterior com -v
, mas utiliza uma sintaxe mais detalhada.
2. Montagem com parâmetros adicionais
docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx
Neste exemplo, o volume é montado no modo somente leitura (readonly
).
3.4 Exemplos Práticos
Exemplo 1: Uso de volumes para banco de dados
Criação e uso de um volume para armazenar dados do banco de dados.
Criação do volume:
docker volume create db_data
Executando o container do banco de dados com o volume montado:
docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v
db_data:/var/lib/postgresql/data postgres
Nesse exemplo, os dados do banco de dados PostgreSQL são salvos no volume db_data
.
Exemplo 2: Uso de volumes para arquivos de configuração
Criação de um volume para armazenar arquivos de configuração e montagem dele no container.
Criação do volume:
docker volume create config_data
Copiando arquivos de configuração para o volume:
docker run --rm -v config_data:/app busybox sh -c "echo 'configuration data' > /app/config.txt"
Executando o container usando o volume para os arquivos de configuração:
docker run -d --name my_app -v config_data:/app/config nginx
Nesse exemplo, os arquivos de configuração são armazenados no volume config_data
, que é montado no diretório /app/config
do container.
Exemplo 3: Logs do container
Criação de um volume para armazenar os logs do container e montá-lo no container.
Criação do volume:
docker volume create logs_data
Executando o container com o volume montado para os logs:
docker run -d --name my_app -v logs_data:/var/log/nginx nginx
Nesse exemplo, os logs do Nginx são salvos no volume logs_data
.
3.5 Verificando o conteúdo dos volumes
Você pode verificar o conteúdo de um volume montando ele em um container temporário.
Exemplo
Rodando um container temporário com o volume montado:
docker run --rm -v my_volume:/app busybox ls /app
Este exemplo vai mostrar o conteúdo do volume my_volume
.
Removendo volumes
Removendo um volume que não está mais em uso.
Exemplo
Removendo um volume:
docker volume rm my_volume
Se o volume estiver sendo usado por um container, o Docker vai mostrar um erro. Certifique-se de que os containers que usam o volume estão parados e removidos.
GO TO FULL VERSION