Dlaczego doker zgłasza 100% wykorzystania dysku na świeżym obrazie Ubuntu?

15

Nie jestem już w stanie używać dokera ani efektywnie uruchamiać nowych obrazów - zgłasza, że ​​mam 100% użycia dysku. Tutaj możesz zobaczyć, że uruchamiam nieskazitelną kopię Ubuntu, a jednak mówi mi, że nie mam już miejsca na dysku:

$ 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

Osobno próbuję uruchomić instancję mysql i wyświetla mi komunikaty o błędach, które moim zdaniem są związane z faktem, że nie mam dostępnego dysku. Kiedy próbuję uruchomić orchardup ​​/ mysql, otrzymuję:

ERROR: 1030  Got error 28 from storage engine

Co oznacza, że ​​zabrakło miejsca w pamięci.

Biorąc to pod uwagę, jak mam interpretować powyższy raport df-h i jak mogę ustalić, co zajmuje 100% mojego dysku? Używam dokera 1.3, działającego na OSX 10.9.4, używając boot2docker.

Dzięki.


Edycja: W celu obejścia tego problemu uruchomiłem boot2docker deletei boot2docker initwydaje się, że zniszczył wszystkie moje obrazy (na szczęście mogę je odbudować za pomocą moich plików dokowanych ). Teraz, kiedy zaczynam nowy obraz 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

O wiele lepiej. Ale nadal jestem zdezorientowany, czy na wszystkich obrazach hostowanych przez boot2docker musi być jakiś wspólny globalny dysk, który wcześniej został zapełniony?


Edycja 2: Właśnie pobrałem kilka zdjęć, a teraz oto, co widzę, gdy uruchamiam obraz ubuntu i sprawdzam wolne miejsce na dysku:

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

Zużyte od 3% do 16%! Oczywiście między wszystkimi moimi obrazami istnieje jakiś dysk współdzielony, którego nie rozumiem ...

Esilverberg
źródło
W jaki sposób korzystasz z kontenerów Docker i w jaki sposób użytkownicy / grupy są rozproszeni (bardziej niż błędy mysql) Ponadto, w przypadku dokera czy współużytkują coś na hoście, czy są czysto samowystarczalne?
linuxdev2013

Odpowiedzi:

1

Na hostach systemu Windows boot2docker działa, tworząc maszynę wirtualną za pomocą wirtualnego pudełka. po uruchomieniu init boot2docker tworzy maszynę wirtualną i domyślnie przypisuje 20G do dysku głównego. na tej maszynie wirtualnej działa minimalny system operacyjny Linux, który z kolei uruchamia demona dokera (demon dokera nie działa natywnie w systemie Windows - jeszcze).

dysk podłączony do maszyny wirtualnej zapewnia przechowywanie obrazów dokera. więc możesz spojrzeć na dodatkowe opcje polecenia inicjującego boot2docker, aby zwiększyć początkowy rozmiar dysku. zwiększy to rozmiar dysku dostępnego do użycia na maszynie wirtualnej, ale jak zauważył Queasy, należy dodać dodatkowe opcje do demona dokera, aby zwiększyć dostępną przestrzeń do przechowywania obrazów.

po uruchomieniu polecenia „df -h” w kontenerze, całkowity zgłaszany rozmiar dysku odpowiada wielkości miejsca na dysku przydzielonego demonowi dokującemu za pomocą opcji „dm.basesize”.

Uwaga: boot2docker jest teraz przestarzały na korzyść Docker Toolbox. możesz chcieć uaktualnić do tej wersji, w którym to przypadku użyłbyś „docker-machine create” zamiast „boot2docker init”. przełączyłem się na docker-toolbox, więc nie mogę przetestować opcji poleceń potrzebnych do inicjalizacji boot2docker

nagu
źródło
0

Zmodyfikuj konfigurację dokera w / etc / sysconfig / docker-storage i dodaj wiersz:

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

Pamiętaj, aby wykonać kopię zapasową dokera przed kontynuowaniem tego zadania, ponieważ spowoduje to usunięcie danych po zainicjowaniu.

Delikatny
źródło
--storage-optnie jest obsługiwany w OSX
Quanlong,
0

Weź pod uwagę, że dysk może być zły. Hitachi (Drive Fitness Test), Seagate (Seatools) i Western Digital (Western Digital Data Lifeguard) oferują bezpłatne oprogramowanie diagnostyczne, które pomoże Ci to ustalić.

Jako przykład tego, jak zły dysk może zepsuć się z miejscem na dysku, utworzyłem kopię zapasową dysków 1 TB, które zgłaszają systemowi Windows, że nadal mają PETABYTY danych do przesłania.

Jeśli twój dysk jest w porządku, użyj du (użycie dysku), aby zobaczyć, który folder jest duży. du -h /usr/bin, du -h /varLub du -h /home/[username]/Downloadsjest pomocna przy diagnozowaniu nim.

Edycja: Widziałem, że używasz OS X: Musisz użyć narzędzi HDD wymienionych powyżej jako ich opcji rozruchowych lub w czymś takim jak darmowy Windows PE, który możesz następnie uruchomić i uruchomić te narzędzia.

Tim G.
źródło
0

Devicemapper jest domyślnym silnikiem pamięci dokera. Próbuje wstępnie wstępnie przydzielić 100 Gb w / var / lib / docker. Jednak nie cała ta przestrzeń jest naprawdę wykorzystywana i można ją skonfigurować w opcjach. Dokumenty dokerów

bbaassssiiee
źródło