Почему docker сообщает о 100% использовании диска в новом образе ubuntu?

Я больше не могу использовать docker или эффективно запускать новые образы-он сообщает, что у меня 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.

спасибо.


Edit: в качестве обходного пути я запустил 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, который ранее был заполнен?


Edit 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% потребили! Очевидно, что между всеми моими образами есть какой-то общий диск что я ничего не понимаю...

12
задан esilverberg
22.12.2022 7:43 Количество просмотров материала 3256
Распечатать страницу

4 ответа

на узлах windows, boot2docker работает путем создания виртуальной машины с помощью virtual box. при запуске инициализации boot2docker он создает виртуальную машину и по умолчанию назначает 20G корневому диску. эта виртуальная машина работает под управлением минимальной ОС Linux, которая, в свою очередь, запускает фактический демон docker (демон docker не работает изначально на windows - пока).

диск, подключенный к виртуальной машине, обеспечивает хранение образов docker. чтобы вы могли посмотреть дополнительные варианты команда инициализации boot2docker для увеличения начального размера диска. это увеличит размер диска, доступного для использования в виртуальной машине, но, как указал Queasy, вам нужно добавить дополнительные параметры в демон docker, чтобы увеличить доступное хранилище для образов.

при запуске "df-h" в контейнере отображается общий размер диска, выделенный демону docker с помощью "dm.вариант basesize".

Примечание: boot2docker теперь устаревшим поддержка Docker Toolbox. может потребоваться обновление до этой версии, в этом случае следует использовать "docker-machine create" вместо "boot2docker init". я переключился на docker-toolbox, поэтому не могу проверить параметры команды, необходимые для boot2docker init

1
отвечен nagu 2022-12-23 15:31

измените конфигурацию docker в /etc/sysconfig / docker-storage и добавьте строку:

DOCKER_STORAGE_OPTIONS= --storage-opt dm.basesize=30G

Не забудьте сделать резервную копию вашего docker, прежде чем приступить к этой задаче, потому что он удалит ваши данные после инициализации.

0
отвечен Queasy 2022-12-23 17:48

считайте, что диск может быть плохо. Hitachi (испытание пригодности привода), Seagate (Seatools), и Западное цифровое (Западный спасатель данным по Цифров) все предлагают свободное диагностическое програмное обеспечение для того чтобы помочь вам определить это.

в качестве примера того, как плохой диск может испортить дисковое пространство, я создал резервную копию дисков 1 ТБ, которые сообщают Windows, что у них все еще есть петабайт данных, оставшихся для передачи.

в случае, если ваш диск в порядке, используйте du (использование диска), чтобы увидеть, какие папка является большой. du -h /usr/bin,du -h /var или du -h /home/[username]/Downloads чтобы помочь определить это.

Edit: я видел, что вы используете OS X: вам нужно использовать инструменты HDD, упомянутые выше, в качестве их загрузочных опций или в чем-то вроде бесплатной Windows PE, которую вы можете загрузить и запустить эти инструменты.

0
отвечен Tim G 2022-12-23 20:05

devicemapper-механизм хранения по умолчанию docker. Он пытается предварительно выделить 100 Гб по умолчанию в /var / lib / docker. Не все это пространство действительно использовать, и вы можете настроить его в опциях. Docker docs

0
отвечен bbaassssiiee 2022-12-23 22:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх