docker - 查找哪个容器使用 Docker Volume

标签 docker

在运行 docker volume ls 时,响应包含:

DRIVER              VOLUME NAME
local               09033b4b22135832411ff485d5adc90e778316c1b9ba27bf8032cb65b8de557b
local               2ae85f4d2270716f936c4ef06e1a9408f90826258c7489a150125ff9d13ce79c
local               58497ac069495708d3bd17aab2b16b9a02badd245de4614a05a7133bdf0efb34
local               eb958485be4ae9c8a71a01a4f03c7cbf9f76c3a8fb2622ded58cf96542373b0d
local               efb5d345f272b32f409800e4804e22a93759c5668c8cb43e1887b5943ea217f9

如何将这些卷名与使用它们的容器关联起来?

我正在尝试了解这些卷的来源以及是否可以删除它们。

最佳答案

使用命名卷启动 centos 容器的简单示例

docker run --rm -dit -v my-vol:/my-vol centos

您可以使用 --filter 标志来查看卷正在被哪个容器使用[1]:

docker ps -a --filter volume=my-vol

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
0f70a651c472        centos              "/bin/bash"         24 seconds ago      Up 23 seconds                           distracted_swirles

如果你想删除没有被任何容器使用的卷,你可以使用 docker volume prune

docker volume prune

WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N]

[1] https://docs.docker.com/engine/reference/commandline/ps/#filtering

[2] https://docs.docker.com/engine/reference/commandline/volume_prune/

关于docker - 查找哪个容器使用 Docker Volume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50668985/

相关文章:

docker - 容器到容器通信 - Docker for Windows

docker - Docker exec 命令中的管道返回错误

Dockerfile : add npm to an existing docker image

docker - 让Apparmor在Docker容器上工作

google-app-engine - 通过Docker将Elixir App部署到Google Cloud

ruby-on-rails - 如何在Rails docker容器中以非root用户身份执行cron任务?

docker - VirtualBox docker 工具箱内的 Yii 2 入门套件 - symlink() : Protocol error

mysql - 如何使MYSQL在Docker运行时启动并在Dockerfile中创建mysql用户

linux - 能够使用非 sudo 用户覆盖只读文件的 root 权限

java - Spring Boot Integration feed 由于不活动而 hibernate