se eu quiser reverter o contêiner, posso tentar confirmar uma imagem e depois excluir o contêiner e criar um novo contêiner a partir da imagem confirmada. Mas se eu fizer isso, o volume será excluído e todos os meus dados desaparecerão
Como o manual do usuário do docker explica, os volumes de dados devem persistir dados fora de um sistema de arquivos de contêiner. Isso também facilita o compartilhamento de dados entre vários contêineres.
Embora o Docker nunca exclua dados em volumes (a menos que você exclua o contêiner associado docker rm -v
), os volumes que não são referenciados por nenhum contêiner do Docker são chamados de volumes pendentes . Esses volumes pendentes são difíceis de se livrar e de acessar.
Isso significa que, assim que o último contêiner usando um volume é excluído, o volume de dados fica oscilando e seu conteúdo fica difícil de acessar.
Para evitar esses volumes pendentes, o truque é criar um contêiner de docker adicional usando o volume de dados que você deseja permanecer; para que sempre haja pelo menos esse contêiner de docker que faça referência ao volume. Dessa forma, você pode excluir o contêiner do docker executando o aplicativo wordpress sem perder a facilidade de acesso ao conteúdo do volume de dados.
Esses contêineres são chamados de contêineres de volume de dados .
Deve haver uma maneira simples de fazer backup do meu contêiner, além dos dados de volume, mas não consigo encontrá-los em nenhum lugar.
imagens da janela de encaixe
Para fazer backup de imagens do docker, use o comando docker save, que produzirá um arquivo tar que poderá ser usado posteriormente para criar uma nova imagem do docker com o comando docker load .
contêineres de docker de backup
Você pode fazer backup de um contêiner de docker de diferentes maneiras
- confirmando uma nova imagem do docker com base no estado atual do contêiner do docker usando o comando docker commit
- exportando o sistema de arquivos do contêiner do docker como um arquivo tar usando o comando docker export . Posteriormente, é possível criar uma nova imagem do docker a partir desse arquivo tar com o comando docker import .
Esteja ciente de que esses comandos farão backup apenas do sistema de arquivos em camadas do contêiner do docker. Isso exclui os volumes de dados .
volumes de dados da janela de encaixe de backup
Para fazer backup de um volume de dados, é possível executar um novo contêiner usando o volume que você deseja fazer backup e executar o comando tar para produzir um archive do conteúdo do volume, conforme descrito no guia do usuário da janela de encaixe .
No seu caso particular, o volume de dados é usado para armazenar os dados para um servidor MySQL. Portanto, se você deseja exportar um arquivo tar para este volume, será necessário parar o servidor MySQL primeiro. Para fazer isso, você terá que parar o contêiner do wordpress.
faça backup dos dados do MySQL
Uma outra maneira é conectar-se remotamente ao servidor MySQL para produzir um despejo de banco de dados com o comando mysqldump . Entretanto, para que isso funcione, seu servidor MySQL deve estar configurado para aceitar conexões remotas e também ter um usuário com permissão para se conectar remotamente. Pode não ser o caso da imagem do docker wordpress que você está usando.
Editar
O Docker apresentou recentemente os plugins de volume do Docker que permitem delegar a manipulação de volumes aos plug-ins implementados pelos fornecedores.
O docker run
comando tem um novo comportamento para a -v
opção. Agora é possível passar para ele um nome de volume . Os volumes criados dessa maneira são nomeados e fáceis de referenciar posteriormente, facilitando os problemas com volumes pendentes .
Editar 2
O Docker introduziu o docker volume prune
comando para excluir todos os volumes pendentes facilmente.