Оновлення вересня 2016 року: Docker 1.13: PR 26108 та зобов’язання 86de7c0 введіть кілька нових команд, щоб полегшити візуалізацію, скільки місця займають дані демона демона на диску та дозволяючи легко очистити "зайві" надлишки.
docker system prune
видалить ВСІ висячі дані (тобто для того, щоб контейнери зупинені, томи без контейнерів та зображення без контейнерів). Навіть невикористані дані, з -a
опцією.
У вас також є:
Для невикористаних зображень використовуйте docker image prune -a
(для видалення звисаючих та несполучених зображень).
Попередження: " невикористаний " означає "зображення, на які не посилається жоден контейнер": будьте уважні перед використанням -a
.
Як показано в AL «s відповідь , docker system prune --all
будуть видалені всі невикористовувані зображення не тільки обірваних ті ... , які можуть бути трохи занадто багато.
Поєднання docker xxx prune
з --filter
можливістю може стати прекрасним способом обмежити обрізку ( мінімальну докерну SDK API 1.28 мінімум, тому докер 17.04+ )
На даний момент підтримуються фільтри:
until (<timestamp>)
- видаляйте лише контейнери, зображення та мережі, створені до заданої часової позначки
label
( label=<key>
, label=<key>=<value>
, label!=<key>
, Або label!=<key>=<value>
) - тільки видалити контейнери, зображення, мережі та обсяги з (або без , в разі , якщо label!=...
використовується) зазначені мітки.
Приклад див. У розділі " Чорношкірі зображення ".
Оригінальна відповідь (вересень 2016 р.)
Я зазвичай роблю:
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
У мене є псевдонім для видалення цих [звисаючих зображень] 13 :drmi
dangling=true
Фільтр знаходить невикористовувані зображення
Таким чином, видаляється будь-яке проміжне зображення, на яке більше не посилається позначене зображення.
Я роблю те ж саме спочатку для запущених процесів (контейнерів)
alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'
Як haridsv балів з в коментарях :
Технічно слід спочатку очистити контейнери перед очищенням зображень, оскільки це дозволить отримати більше звисаючих зображень та менше помилок .
Джесс Фразелле (jfrazelle) виконує функцію bashrc :
dcleanup(){
docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null
docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null
}
Щоб видалити старі зображення, а не лише зображення, що не переносяться, ви можете врахувати docker-gc
:
Простий скрипт Docker-контейнера та зображення сміття для зображень.
- Контейнери, які вийшли більше години тому, вилучаються.
- Зображення, які не належать до жодного залишкового контейнера, після цього видаляються.
"dangling=true"
насправді означає?