2016-07-05 2 views
0

Я новичок в докер и играю с ним в течение нескольких дней.Как я могу найти, какие контейнеры (контейнеры) установили определенный том?

Недавно я наткнулся на docker volumes и у меня возникают проблемы, выяснить это ...

$ docker volume ls 
DRIVER    VOLUME NAME 
local    97cdb9ee214fbb2a2da04c457613c637043afe8e302ac37c4be435241742e309 
local    hello 

Я не знаю, какой контейнер 97cdb9ee... принадлежит. Я понимаю, что это было создано случайным образом, если имя не передано.

Почему это объем можно видеть только docker volumes ls, когда вы делаете docker run ... -v <host_dir> ... и не отображается, когда вы делаете docker run ... -v <host_dir>:<container_dir> ...?

Есть ли веская причина иметь столько анонимных томов, кроме простого теста?

Редактировать: Его можно найти на стороне контейнера docker inspect <container>. Но это может быть неприятно, когда приходится делать это со всеми контейнерами, чтобы выяснить, какой из них. Можно ли переименовать имя тома?

ответ

0

Как вы уже видели, вы можете найти это, когда вы проверяете контейнер:

$ docker run -v /tmp --name voltest busybox true 
$ docker volume ls 
DRIVER    VOLUME NAME 
local    4faeb87e1d603d23157564cb94fa890ab21010c3c6c91c33bcae7d1ed016f560 
$ docker inspect voltest 
... 

"Mounts": [ 
    { 
       "Name": "4faeb87e1d603d23157564cb94fa890ab21010c3c6c91c33bcae7d1ed016f560", 
       "Source": "/var/lib/docker/volumes/4faeb87e1d603d23157564cb94fa890ab21010c3c6c91c33bcaed1ed016f560/_data", 
       "Destination": "/tmp", 

       "Driver": "local", 
       "Mode": "", 
       "RW": true, 
       "Propagation": "" 
    } 
    ], 
... 

Вы можете очистить их вверх, делая docker rm -v ... на контейнерах. Или вы можете назвать их, выполнив docker run -v myname:/path image_name, чтобы использовать именованный том с именем «myname». Причина, по которой они автоматически не удаляются, заключается в том, что автор изображения идентифицировал местоположение как содержащее данные, которые вы не можете случайно потерять с помощью определения VOLUME в своем файле Docker. Но часто это не имеет значения, если вы уже удалили контейнер и его можно очистить.

Смежные вопросы