Вопрос или проблема
Я установил Docker 1.13 на macOS 10.10, вошёл в “машину” docker с помощью
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
И выполнил df -h. Он говорит, что у меня есть /dev/sda1, смонтированный на /var/lib/docker/overlay2 с 64 ГБ дискового пространства.
/dev/sda1 62.7G 5.6G 54.0G 9% /var/lib/docker/overlay2
У меня было несколько сборок с ошибкой “недостаточно места на устройстве”, так что я подозреваю, что именно туда уходят все образы.
Что мне неясно, так это следующее:
- что такое /dev/sda1. Это виртуальный образ диска где-то на моем маке? Если да, то где?
- Предположим, что у меня недостаточно места, и я хочу хранить больше образов. Как увеличить это дисковое пространство?
Docker Desktop на macOS позволяет вам изменить размер образа диска в графическом интерфейсе. Перейдите в Настройки → Ресурсы → Дополнительно и увеличьте размер образа диска.
1) Это виртуальный образ диска, хранящийся в той же директории, что и упомянутый вами сокет tty
: ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
2) Насколько мне известно, невозможно изменить размер этого существующего диска, вам нужно будет создать новый пустой виртуальный диск с большим размером:
$ cd ~/Library/Containers/com.docker.docker/Data/database/
$ git reset --hard
HEAD теперь на c435935 Настройки изменены 09 Янв 17 20:28 +0000
$ cat com.docker.driver.amd64-linux/disk/size
65536
$ echo 153600 > com.docker.driver.amd64-linux/disk/size # размер в MiB
$ git add com.docker.driver.amd64-linux/disk/size
$ git commit -s -m 'Новый целевой размер диска'
$ rm ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
Затем перезагрузите Docker.
Источник: https://github.com/docker/for-mac/issues/1118#issuecomment-271399701
Ответ Даниэля верный, но я нашёл более простое решение. В моём случае, я думаю, я мигрировал с docker-toolbox когда-то давно, что заблокировало мою базу данных на ~17G. Мне показалось проще следовать этим инструкциям:
https://github.com/docker/for-mac/issues/135#issuecomment-248009571
Обратите внимание, что это удалит ваши контейнеры:
- Остановите docker для mac
rm ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
- Запустите docker для mac
На моей стороне это сработало. Упомянутый выше комментарий к проблеме на github упоминает docker save
и docker load
команды, которые позволяют вам создать резервную копию ваших контейнеров перед удалением вашего Docker.qcow2
. Я их не использовал, так как мне на самом деле не были важны мои контейнеры.
Ответ или решение
Как изменить объем дискового пространства Docker на macOS
Установка и использование Docker на macOS предоставляет множество удобных возможностей, однако пользователи иногда сталкиваются с проблемами, связанными с нехваткой дискового пространства при работе с образами и контейнерами. В этой статье мы подробно рассмотрим, что такое виртуальный дисковый образ Docker на macOS, как изменить его размер, а также предоставим советы по оптимизации работы с Docker.
1. Что такое /dev/sda1
?
В Linux, включая систему, используемую Docker на macOS, /dev/sda1
— это стандартное обозначение первого раздела первого диска. В случае с Docker для macOS это виртуальный образ, который хранит все данные контейнеров и образов. Этот файл диска находится по следующему пути:
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
Файл Docker.qcow2
— это образ диска, который Docker использует для хранения всего необходимого, включая ваши образы и контейнеры. Этот файл действительно занимает места на вашем Mac, и его размер ограничивает количество данных, которые вы можете хранить внутри Docker.
2. Как увеличить размер дискового пространства Docker?
Если вы столкнулись с ошибками, связанными с нехваткой дискового пространства, вам необходимо увеличить размер виртуального диска. Следует отметить, что в настоящее время нет простого способа динамически изменить размер уже существующего образа диска. Вместо этого вам придется создать новый образ с большим объемом. Рассмотрим, как это сделать:
Шаги для изменения размера дискобраза:
-
Остановите Docker Desktop: Важно сначала остановить все процессы Docker, чтобы избежать повреждения данных.
-
Удалите существующий образ диска: Для этого выполните следующую команду в терминале:
rm ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
-
Измените размер диска: Перейдите в папку, где находится информация о настройках Docker, и измените значение размера. Для этого выполните следующие команды:
cd ~/Library/Containers/com.docker.docker/Data/database/ git reset --hard echo 153600 > com.docker.driver.amd64-linux/disk/size # Измените размер на 153600 MiB git add com.docker.driver.amd64-linux/disk/size git commit -s -m 'New target disk size'
Убедитесь, что вы заменили
153600
на желаемый размер диска в объеме MiB. -
Запустите Docker: После выполнения указанных выше шагов, запустите Docker Desktop снова. Это приведет к созданию нового пустого диска с заданным размером.
Резервное копирование контейнеров
Если вам нужно сохранить ваши текущие контейнеры и образы перед их удалением, вы можете воспользоваться командами docker save
и docker load
. Эти команды помогут вам сохранить необходимые данные в файл, который можно будет загрузить обратно после создания нового образа диска.
Заключение
Изменение размера дискового пространства Docker на macOS может показаться сложной задачей, но соблюдая перечисленные шаги, вы сможете добиться желаемого результата. Учитывайте важность резервного копирования данных перед удалением существующего виртуального диска, чтобы избежать потерь информации. Если у вас возникнут дополнительные вопросы или проблемы, рекомендуем обратиться к официальной документации Docker или сообществу пользователей.