Como compartilhar dados entre um contêiner do docker e sistema host usando volumes

Como compartilhar dados entre um contêiner do docker e sistema host usando volumes

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
Compartilhando dados do sistema host para um contêiner do Docker Requisitos de software e convenções de linha de comando Linux
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.

  1. 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 
  2. 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 o Data1 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 
  3. 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