CodeGym /Cursos /Docker SELF /Montando volumes em containers

Montando volumes em containers

Docker SELF
Nível 19 , Lição 2
Disponível

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:

Terminal

docker volume create my_volume

Executando o container com o volume montado:

Terminal

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:

Terminal

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

Terminal

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

Terminal

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:

Terminal

docker volume create db_data

Executando o container do banco de dados com o volume montado:

Terminal

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:

Terminal

docker volume create config_data

Copiando arquivos de configuração para o volume:

Terminal

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:

Terminal

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:

Terminal

docker volume create logs_data

Executando o container com o volume montado para os logs:

Terminal

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:

Terminal

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:

Terminal

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.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION