Recursos do Docker Volumes
- Compartilhamento de dados de volume e armazenamento entre vários contêineres e sistemas de arquivos host.
- Desacoplando recipientes do armazenamento.
- Não exclui os dados contidos ao excluir o contêiner.
- Faça backup, restaure e migre dados facilmente.
Neste tutorial, vamos explicar o que é um volume Docker e como usá-lo, bem como como montar um volume no Docker.
Requisitos
- Um sistema executando Linux com Docker instalado.
- Uma senha de root está configurada.
Sintaxe básica do volume do Docker
Você pode usar o comando “docker volume” para ver todas as opções disponíveis com o volume:
volume dockerVocê deve ver a seguinte saída após inserir o comando acima:
Uso: volume docker COMMANDGerenciar volumes
Comandos:
criar Criar um volume
inspecionar Exibir informações detalhadas em um ou mais volumes
Volumes da lista ls
podar Remova todos os volumes locais não utilizados
rm Remova um ou mais volumes
Execute 'docker volume COMMAND --help' para obter mais informações sobre um comando.
Crie um Volume
Para criar um volume de dados, primeiro você precisa criar um volume de dados no host Docker e anexar o volume ao contêiner.
Você pode criar um volume Docker usando o comando “docker volume create.”Por exemplo, use o seguinte comando para criar um novo volume do Docker chamado myvolume:
volume docker criar myvolumeVocê deve ver a seguinte saída:
myvolumeVocê pode listar seu volume existente usando o seguinte comando:
volume docker lsVocê deve ver a seguinte saída:
NOME DO VOLUME DO DRIVERlocal c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
myvolume local
Se você quiser ver mais informações sobre o volume, execute o seguinte comando:
docker inspecionar meu volumeVocê deve obter a seguinte saída após executar o comando acima:
["CreatedAt": "2020-09-12T04: 51: 31Z",
"Driver": "local",
"Rótulos": ,
"Mountpoint": "/ var / lib / docker / volumes / myvolume / _data",
"Nome": "meuvolume",
"Opções": ,
"Escopo": "local"
]
Monte um Volume
Neste ponto, você tem um volume chamado myvolume. Neste exemplo, você criará um contêiner e montará um myvolume no contêiner.
Você pode usar a opção -mount para montar o volume. A sintaxe básica para montar o volume no contêiner é mostrada abaixo:
docker run --mount source = volume-name, destination = path-inside-container docker-imagesPor exemplo, para criar um contêiner Ubuntu e montar o myvolume no contêiner, execute o seguinte comando:
docker run -it --name = volumecontainer --mount source = myvolume, destination = / data ubuntuEste comando puxará a imagem do Ubuntu do Docker Hub, iniciará o contêiner no modo interativo com o nome volumecontainer e montará o contêiner myvolume no / data dentro do diretório / data:
Não foi possível encontrar a imagem 'ubuntu: mais recente' localmentemais recente: puxando da biblioteca / ubuntu
54ee1f796a1e: Puxar completo
f7bfea53ad12: Extração completa
46d371e02073: Extração completa
b66c17bbf772: Extração completa
Resumo: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Status: Download da imagem mais recente para o ubuntu: mais recente
root @ 06a477c4e444: / #
Você pode verificar o volume montado com o seguinte comando:
[email protegido]: / # lsVocê deve ver o diretório de dados na seguinte saída:
bin boot data dev etc home lib lib32 lib64 libx32 media mntopt proc root run sbin srv sys tmp usr var
Agora, vamos criar um arquivo de amostra chamado arquivo.txt dentro do diretório / data com o seguinte comando:
echo "Este é um arquivo de teste!"> / dados / arquivo.TXTSaia do contêiner com o seguinte comando:
saídaInicie o mesmo contêiner novamente com o seguinte comando:
docker container iniciar volumecontainerEm seguida, anexe o contêiner em execução com o seguinte comando:
docker exec -it volumecontainer / bin / bashVerifique se o seu arquivo.txt é persistente com o seguinte:
dados / arquivo cat.TXTVocê deve obter a seguinte saída após inserir o comando acima:
Este é um arquivo de teste!
Compartilhar dados entre contêineres
Você também pode compartilhar dados entre vários contêineres usando o volume do Docker.
Como você sabe, criamos um volume denominado myvolume, um novo contêiner denominado volumecontainer usando este volume. Também criamos um arquivo chamado arquivo.txt dentro do volume.
Agora, criaremos outro contêiner denominado volumecontainer1 com o mesmo volume myvolume usando o seguinte comando:
docker run -it --name = volumecontainer1 --mount source = myvolume, destination = / data ubuntuExecute o comando ls, conforme mostrado abaixo:
lsVocê deve ver o diretório de dados na seguinte saída:
bin boot dados dev etc home lib lib32 lib64 libx32media mnt opt proc root execute sbin srv sys tmp usr var
Execute o seguinte comando para verificar o arquivo.TXT:
cat / data / file.TXTVocê deve ver o mesmo conteúdo que criou no contêiner anterior:
Este é um arquivo de teste!
Monte o diretório como um volume
Você pode usar o diretório localizado dentro de seu sistema host Docker como um volume e montá-lo no contêiner. Você também pode usar a opção -v para fazer o mesmo, conforme mostrado abaixo:
docker run -v "directory_name": volume_name docker_imageCrie um diretório chamado / data dentro do host Docker com o seguinte comando:
mkdir / DataEm seguida, crie alguns arquivos dentro do diretório / Data:
cd / dadostoque no arquivo 1.arquivo txt 2.arquivo txt 3.TXT
Crie um novo contêiner usando o diretório / Data como um volume com o seguinte comando:
docker run -it --name = data1 -v / Data: / Data ubuntuEste comando criará um novo contêiner e montará o volume com o nome / Data.
Execute o seguinte comando para verificar o conteúdo do diretório / Data:
ls -l / Data /Você deve ver todos os arquivos que criamos anteriormente no sistema host, conforme mostrado abaixo:
total 0-rw-r - r-- 1 root root 0 Set 12 05:41 file1.TXT
-rw-r - r-- 1 root root 0 Set 12 05:41 file2.TXT
-rw-r - r-- 1 root root 0 Set 12 05:41 file3.TXT
Remover volume do Docker
Você pode excluir ou remover facilmente o volume usando a seguinte sintaxe:
docker volume rm volume-namePor exemplo, para remover o volume denominado myvolume, execute o seguinte comando:
volume docker rm myvolumeVocê deve obter o seguinte erro:
Resposta de erro do daemon: remove myvolume:o volume está em uso - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]
Isso ocorre porque o seu volume é usado pelo contêiner. Então, você precisará parar e remover o recipiente antes de remover o volume.
Para interromper e remover o contêiner, execute o seguinte comando:
docker container stop volumecontainer volumecontainer1docker container rm volumecontainer volumecontainer1
Agora, você pode remover facilmente o volume.
Conclusão
No guia acima, você aprendeu o que é o volume do Docker, como criá-lo e como montá-lo dentro do contêiner. Você também aprendeu como compartilhar dados entre vários contêineres usando o volume.