Как я могу исправить Docker/Mac без пробела на ошибке устройства?
Я построил довольно большой образ (1G), который имеет много "инфраструктуры" в нем для тестирования (Mongo, Kafka и т.д.).
При попытке запустить это я не оставляю места на ошибках устройства. Как я могу это исправить?
Я очистил остановленные изображения и удалил все изображения, которые мне не нужны.
Ответы
Ответ 1
Если вы получаете ошибку no space left on device
с Docker, вы можете легко решить эту проблему с помощью system prune
.
Я использую Docker для Mac 17.03.
С докере UP и всеми вашими контейнерами RUNNING, выполните docker system prune -a
Это должно дать следующий диалог:
WARNING! This will remove:
- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all images without at least one container associated to them Are you sure you want to continue? [y/N]
Затем нажмите y, чтобы удалить много контейнеров, заключив (в моем случае): Total reclaimed space: 23.26 GB.
Теперь вы можете вернуться к работе, даже не перезагрузив докер!
Ответ 2
Вы можете изменить размер размера виртуального диска в настройках Docker для Mac на вкладке "Диск". Это увеличит пространство без потери данных.
Ответ 3
Проверьте свои каталоги докеров, чтобы найти проблему (на MAC это будет отличаться, но тот же подход может помочь)
du -hs /var/lib/docker
Вы можете видеть, какая папка занимает много места на диске, выполнив ту же команду в подпапках /var/lib/docker
:
-
Для /var/lib/docker/volumes
: вам нужно удалить тома потерянные.
Вы также можете использовать docker volume ls -qf dangling=true
для проверки
объемы. Чтобы удалить осиные тома: docker volume rm $(docker volume ls -qf dangling=true)
-
Для /var/lib/docker/containers
вам нужно проверить, есть ли у вас много остановленных (или запущенных) контейнеров с docker ps
= запущенными контейнерами и docker ps -a
= все контейнеры (запущены и остановлены). Чтобы удалить остановленные контейнеры: docker rm -v $(docker ps -aq)
. Флаг -v
автоматически удалит объем контейнера
-
Для /var/lib/docker/images
вы можете удалить все неиспользуемые изображения, используя docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Также проверьте GitHub, чтобы найти очень полезные скрипты, которые удаляют неиспользуемые изображения/контейнеры/тома.
Ответ 4
Вы можете обновить размер жесткого диска, доступного для vm в
$HOME/.docker/machine/machines/default/config.json
Ответ 5
Вы можете нажать на значок Docker вверху, затем preferences
. Перейдите на вкладку reset
и нажмите remove all data
.
Ответ 6
Вы всегда можете сбросить и воссоздать boot2docker vm заново, чтобы убедиться, что только нужные изображения/контейнеры были построены/импортированы заново. Если вы продолжаете сталкиваться с проблемой пространства, вы можете захотеть дать вашему boot2docker vm бит больше места, см. Docker увеличить объем дискового пространства
Ответ 7
Попробуйте увеличить дисковое пространство. Это то, что сработало для меня. Docker → настройки → диск → размер образа диска (увеличить его) → применить