use o sinalizador --filter para ver quais contêineres estão usando o volume:
docker ps --filter volume=mydata
depois, pare o contêiner que está usando esse volume.
Por fim, remova o volume, se desejar:
docker volume rm --force mydata
De acordo com a documentação oficial , é possível " force "remova um volume. A documentação permanece bastante inespecífica, o que significa --force
. Para o que eu encontrei até agora na web isso implica a remoção de volumes que ainda estão em uso por outros recipientes.
Usar a opção --force
parece não ter impacto:
$ docker volume create mydata
$ docker docker run -v mydata:/mydata alpine:latest /bin/sh -c "touch /mydata/mydata.test; ls /mydata"
$ docker volume rm --force mydata
Error response from daemon: unable to remove volume: remove mydata: volume is in use - [1cbcfa3d47a32db7b0075e113216f7146a436a4da22a97dc2f7b60c68de95c3d]
Esta é a mesma saída que ao omitir o sinalizador --force
. Isso é um bug ou eu estou entendendo mal alguma coisa?
$ docker version
Client:
Version: 18.01.0-ce
API version: 1.35
Go version: go1.9.2
Git commit: 03596f5
Built: Wed Jan 10 20:09:13 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.01.0-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.2
Git commit: 03596f5
Built: Wed Jan 10 20:07:43 2018
OS/Arch: linux/amd64
Experimental: false
use o sinalizador --filter para ver quais contêineres estão usando o volume:
docker ps --filter volume=mydata
depois, pare o contêiner que está usando esse volume.
Por fim, remova o volume, se desejar:
docker volume rm --force mydata
Estou incomodado com todas as respostas em todas as postagens que NÃO fornecem uma solução para o caso que é mencionado por OP: O sinalizador --force NÃO AJUDA.
Solução alternativa (ATENÇÃO, você realmente deve saber o que faz!):
docker volume ls # To list the volumes which currently exist
docker volume inspect --format '{{ .Mountpoint }}' <volume-name> # To get the absolute path to the directory on your system where docker actually stores this volume
sudo rm -rf <path-from-above> # E.g. sudo rm -rf /var/lib/docker/volumes/database_volume (without the _data directory)
sudo service docker restart # Needed so docker will reload its volumes-directory to no longer list the deleted volume under docker volume ls and no longer make headaches on any build- or run-attempts.
Tags docker