Manpage de docker rm
diz
Remover um contêiner e seus volumes
$ docker rm -v redis redis
Este comando removerá o contêiner e todos os volumes associados a ele . Observe que se um volume foi especificado com um nome , ele não será removido.
O que significa "um volume foi especificado com um nome"? Esse volume não é um volume associado ao recipiente a ser removido?
Remover um contêiner e remover volumes seletivamente
$ docker create -v awesome:/foo -v /bar --name hello redis hello $ docker rm -v hello
Neste exemplo, o volume de /foo permanecerá intacto, mas o volume de /bar será removido . O mesmo comportamento vale para volumes herdados com --volumes-from .
Por que "o volume de /foo permanecerá intacto, mas o volume de /bar será removido"?
Obrigado.
docker rm -v
cuida que os volumes nomeados não sejam excluídos por engano. Os volumes anônimos podem ser usados como armazenamento temporário, mas espera-se que os volumes nomeados persistam por mais tempo.Para excluir volumes nomeados como no exemplo acima:
docker volume rm awesome
Consulte a documentação do Docker sobre volumes para obter informações básicas e, em particular, sua descrição da remoção de volume .
Significa um volume com nome próprio, montado no container usando
-v name:path
ou uma--mount
opção. Espera-se que esses volumes sejam gerenciados separadamente de qualquer contêiner (mesmo quando criados junto com um contêiner). Eles não são removidos junto com um contêiner quando a remoção do volume é solicitada junto com a remoção do contêiner, eles precisam ser removidos separadamente.Como
/foo
é um volume nomeado (awesome
), portanto, é gerenciado separadamente, enquanto/bar
é um volume anônimo, sem expectativa de utilidade além do tempo de vida do contêiner ao qual está associado.