Como compartilhar dados entre um contêiner do docker e sistema host usando volumes
- 3499
- 444
- Randal Kuhlman
A maneira mais fácil de compartilhar dados entre um contêiner do docker e o sistema host é usar os volumes do Docker. Neste guia, examinaremos as instruções passo a passo do compartilhamento de arquivos entre um contêiner do docker e o sistema host usando volumes do docker através da linha de comando no Linux.
VOCÊ SABIA?Os volumes do Docker funcionam de maneira semelhante às montagens de ligação, mas são o método preferido para compartilhar dados entre um sistema host e contêiner do docker, porque os aplicativos externos não conseguem acessar os arquivos e modificá -los.
Neste tutorial, você aprenderá:
- Como usar volumes para compartilhar dados entre um contêiner do docker e sistema host
Categoria | Requisitos, convenções ou versão de software usada |
---|---|
Sistema | Qualquer distro Linux |
Programas | Docker |
Outro | Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando. |
Convenções | # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular |
Compartilhe dados entre o contêiner do docker e o host
Considere o seguinte exemplo.
- Primeiro, em um sistema host, criamos um diretório com um único arquivo que gostaríamos de compartilhá -lo com um contêiner do Docker:
# mkdir data1 # echo "docker volume compartilhe"> data1/file1
- Em seguida, executamos um recipiente do documento e usamos o
-v
Opção para montar um diretório de sistema host local Dados1 no diretório do contêiner/opt/data1
. Observe que, se o destino não existir, será criado pelo comando do Docker. Além disso, o Docker aceita apenas um caminho completo para um diretório local do sistema host e, por esse motivo, precisamos prefixar oData1
diretório com$ PWD/
Variável de ambiente que retorna um caminho completo para um diretório de trabalho atual:# Docker Run -v $ PWD/Data1:/Opt/Data1 -it Debian/Bin/Bash
- O resultado do comando acima é que agora podemos acessar nosso arquivo criado anteriormente
arquivo1
De dentro de um contêiner:# CAT/OPT/DATA1/FILE1 DOCKER VOLUME STARY
Isso é tudo o que há para isso. Agora você pode compartilhar os arquivos que deseja entre o sistema host e os contêineres do docker usando o volume montado. Se você estiver encontrando algum erro, consulte a seção Solução de problemas abaixo.
Conclusão
Neste guia, aprendemos a compartilhar dados entre um sistema host e contêiner do docker usando volumes. Esta é a melhor e mais fácil maneira de compartilhar dados entre os dois sistemas no Linux, exigindo apenas alguns passos curtos.
Solução de problemas
Se você estiver encontrando o seguinte erro:
FATA [0000] Resposta de erro do daemon: Não é possível ligar o volume de montagem: os caminhos de volume de dados1 devem ser absolutos.
Isso significa que você precisa fornecer um caminho completo para os diretórios de origem e destino. Dica: o caminho completo sempre começa com /
.
Você também pode encontrar essa permissão negado erro:
# ls/opt/data1/ls: não é possível abrir o diretório/opt/data1/: permissão negado
Este erro é causado por Selinux em execução no sistema host local. As duas soluções a seguir ajudarão a resolver este problema. Primeiro, a solução é desativar o Selinux no seu sistema host local.
# setenforce 0
Como desativar o Selinux pode dificultar a integridade do seu sistema host, pode ser mais fácil fornecer privilégios estendidos ao seu contêiner, com um docker --privilegiado = true
opção:
# Docker run --privileged = true -v $ pwd/data1:/opt/data1 -it debian/bin/bash
Tutoriais do Linux relacionados:
- Coisas para instalar no Ubuntu 20.04
- Uma introdução à automação, ferramentas e técnicas do Linux
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Mastering Bash Script Loops
- Ubuntu 20.04 Guia
- Arquivos de configuração do Linux: os 30 primeiros mais importantes
- Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
- Como fazer bota dupla kali linux e windows 10
- Sistema Linux Hung? Como escapar para a linha de comando e…
- Ubuntu 20.04 truques e coisas que você pode não saber
- « Criando um repositório de pacote Redhat
- Linux comandos para fazer backup e restaurar o banco de dados MySQL »