Чому докер повідомляє про 100% використання диска на свіжому зображенні ubuntu?


15

Я більше не можу використовувати докер або ефективно запускати нові зображення - це повідомлення про те, що я маю 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% мого диска? Я працюю докер 1.3, працює на OSX 10.9.4, використовуючи boot2docker.

Спасибі.


Редагувати: Як вирішити, я запустив boot2docker delete, а потім boot2docker init, і, схоже, зірвав усі мої зображення (на щастя, я можу відновити їх за допомогою моїх докерфілів ). Тепер, коли я запускаю новий образ 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% споживаних! Очевидно, що між моїми зображеннями є якийсь спільний диск, який я не розумію ...


Як ви використовуєте контейнери Docker і як розповсюджуються користувачі / групи (більше до помилок mysql) Також для docker вони діляться чим-небудь на хості чи вони суто автономні?
linuxdev2013

Відповіді:


1

На хостах Windows boot2docker працює, створюючи віртуальну машину за допомогою віртуальної скриньки. коли ви запускаєте boot2docker init, він створює віртуальну машину і за замовчуванням призначає 20G кореневому диску. на цій віртуальній машині працює мінімальна операційна система Linux, яка, в свою чергу, запускає фактичний демон докера (докерський демон не працює заново на Windows - поки що).

диск, приєднаний до віртуальної машини, забезпечує зберігання докерських зображень. так що ви можете переглянути додаткові параметри команди boit2docker init для збільшення початкового розміру диска. це збільшить розмір диска, доступного для використання у віртуальній машині, але, як зазначив Queasy, вам потрібно додати додаткові параметри до демон-докера, щоб збільшити доступний обсяг пам’яті для зображень.

коли ви запускаєте "df -h" в контейнері, загальний розмір диска повідомляється про площу диска, виділену демону docker, використовуючи опцію "dm.basesize".

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


0

Змініть конфігурацію докера в / etc / sysconfig / docker-storage та додайте рядок:

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

Не забудьте створити резервну копію вашого докера, перш ніж продовжувати це завдання, оскільки він видалить ваші дані після ініціалізації.


--storage-optне підтримується на OSX
Quanlong

0

Вважайте, що привід може бути поганим. Hitachi (тест на придатність приводу), 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: Вам потрібно буде використовувати згадані вище інструменти жорсткого диска як їх варіанти завантаження або щось подібне до безкоштовного програмного забезпечення Windows PE, яке ви можете потім завантажувати та запускати ці інструменти.


0

Devicemapper є двигуном зберігання даних за замовчуванням. Він намагається попередньо виділити 100Gb за замовчуванням у / var / lib / docker. Однак не весь цей простір використовується насправді, і ви можете налаштувати його у параметрах. Докерські документи

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.