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 delete
i boot2docker init
wydaje 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 ...
źródło
Odpowiedzi:
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
źródło
Zmodyfikuj konfigurację dokera w / etc / sysconfig / docker-storage i dodaj wiersz:
Pamiętaj, aby wykonać kopię zapasową dokera przed kontynuowaniem tego zadania, ponieważ spowoduje to usunięcie danych po zainicjowaniu.
źródło
--storage-opt
nie jest obsługiwany w OSXWeź 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 /var
Lubdu -h /home/[username]/Downloads
jest 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.
źródło
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
źródło