Я больше не могу использовать докер или эффективно запускать новые образы - он сообщает, что я использую диск на 100%. Здесь вы можете видеть, что я запускаю нетронутую копию Ubuntu, и все же он говорит мне, что у меня нет свободного места на диске:
$ docker run -t -i ubuntu /bin/bash
root@3838b70bd76e:/# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 19G 18G 0 100% /
none 19G 18G 0 100% /
tmpfs 1005M 0 1005M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/sda1 19G 18G 0 100% /etc/hosts
tmpfs 1005M 0 1005M 0% /proc/kcore
Отдельно я пытаюсь запустить экземпляр mysql, и он выдает мне сообщения об ошибках, которые, по моему мнению, связаны с тем, что у меня нет свободного диска. Когда я пытаюсь запустить orchardup / mysql, я получаю:
ERROR: 1030 Got error 28 from storage engine
Это означает, что у него закончилось место для хранения.
Учитывая это, как мне следует интерпретировать приведенный выше отчет df -h и как определить, что потребляет 100% моего диска? Я использую Docker 1.3, работающий на OSX 10.9.4, использующий boot2docker.
Благодарю.
Редактировать: В качестве обходного пути я запустил boot2docker delete
, а затем boot2docker init
, и, кажется, уничтожил все мои изображения (к счастью, я могу восстановить их с моими dockerfiles ). Теперь, когда я запускаю свежий образ Ubuntu:
root@f53d637e3d33:/# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 19G 373M 17G 3% /
none 19G 373M 17G 3% /
tmpfs 1005M 0 1005M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/sda1 19G 373M 17G 3% /etc/hosts
tmpfs 1005M 0 1005M 0% /proc/kcore
Намного лучше. Но, я все еще в замешательстве, должен быть какой-то общий глобальный диск во всех образах, размещенных в boot2docker, которые ранее были заполнены?
Редактировать 2: Я только что загрузил кучу изображений, и теперь вот что я вижу, когда запускаю образ Ubuntu и проверяю свободное место на диске:
root@f53d637e3d33:/# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 19G 2.7G 15G 16% /
none 19G 2.7G 15G 16% /
tmpfs 1005M 0 1005M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/sda1 19G 2.7G 15G 16% /etc/hosts
tmpfs 1005M 0 1005M 0% /proc/kcore
От 3% до 16% потребляется! Ясно, что есть какой-то общий диск между всеми моими изображениями, который я не понимаю ...
источник
Ответы:
На хостах Windows boot2docker работает, создавая виртуальную машину, используя виртуальный ящик. когда вы запускаете boot2docker init, он создает виртуальную машину и по умолчанию назначает 20G корневому диску. эта виртуальная машина работает под минимальной ОС Linux, которая, в свою очередь, запускает самого демона docker (демон docker не запускается в Windows - пока).
диск, подключенный к виртуальной машине, обеспечивает хранение образов докера. так что вы можете посмотреть дополнительные параметры команды init boot2docker, чтобы увеличить начальный размер диска. это увеличит размер диска, доступного для использования на виртуальной машине, но, как указал Queasy, вам нужно добавить дополнительные опции в демон docker, чтобы увеличить доступное хранилище для образов.
когда вы запускаете "df -h" в контейнере, то сообщается, что общий размер диска соответствует размеру дискового пространства, выделенного демону docker с использованием параметра "dm.basesize".
примечание: boot2docker устарел в пользу Docker Toolbox. Возможно, вы захотите перейти на эту версию, и в этом случае вы будете использовать «docker-machine create» вместо «boot2docker init». я переключился на docker-toolbox, поэтому не могу проверить параметры команды, необходимые для init boot2docker
источник
Измените конфигурацию докера в / etc / sysconfig / docker-storage и добавьте строку:
Не забудьте сделать резервную копию вашего докера, прежде чем продолжить выполнение этой задачи, потому что он удалит ваши данные после инициализации.
источник
--storage-opt
не поддерживается на OSXУчтите, что диск может быть плохим. Hitachi (Drive Fitness Test), Seagate (Seatools) и Western Digital (Western Digital Data Lifeguard) предлагают бесплатное диагностическое программное обеспечение, которое поможет вам определить это.
В качестве примера того, как плохой диск может испортить дисковое пространство, я сделал резервную копию дисков емкостью 1 ТБ, которые сообщают Windows, что у них все еще есть ПЕТАБИТЫ данных, оставленные для передачи.
Если с вашим диском все в порядке, используйте du (Использование диска), чтобы увидеть, какая папка большая.
du -h /usr/bin
,du -h /var
Илиdu -h /home/[username]/Downloads
чтобы помочь определить его.Редактировать: я видел, что вы используете OS X: вам нужно будет использовать инструменты HDD, упомянутые выше, в качестве параметров загрузки или что-то вроде бесплатного Windows PE, к которому вы можете затем загрузить и запустить эти инструменты.
источник
Devicemapper является механизмом хранения докера по умолчанию. Он пытается предварительно выделить 100 ГБ по умолчанию в / var / lib / docker. Хотя не все это пространство действительно используется, и вы можете настроить его в настройках. Докер документы
источник