Depois de ler os documentos, fiquei um pouco confuso sobre a melhor forma de gerenciar dados produtivos de aplicativos / serviços.
Parece haver três opções:
- Simplesmente mapeie o volume para o diretório host (ou seja,
-v
argumento paradocker run
) - Crie uma imagem de contêiner de janela de encaixe para dados (por exemplo, contêiner separado e
--volumes-from
) - Criando um volume da janela de encaixe (ou seja
docker volume create
)
Agora, parece que a prática aceita é a opção 2, mas depois me pergunto qual é o propósito da 3.
Especialmente como você lida corretamente com esses cenários docker volume
e é melhor usar um contêiner de volume de dados ou isso para cada situação?
- Você precisa de dados do aplicativo em um volume e / ou camada de armazenamento separados no servidor
- Fazendo backup
- Restaurando dados
btrfs scrub
-lo para encontrar e corrigir arquivos danificados. Não tenho certeza de como as coisas encaixadas funcionam, mas acho que elas não protegem contra a podridão de dados; portanto, sempre preciso de uma restauração completa se algo de ruim acontecer, em vez de apenas restaurar arquivos individuais. Outro pensamento é que ele adiciona outra camada de abstração, tornando mais lenta a leitura e a gravação de arquivos. De alguma forma, não vejo as vantagens dos itens 2 e 3, mas não tenho experiência com o docker, portanto isso pode mudar.