도 커가 새로운 우분투 이미지에서 100 % 디스크 사용량을보고하는 이유는 무엇입니까?


15

더 이상 도커를 사용하거나 새 이미지를 효과적으로 실행할 수 없습니다. 디스크 사용량이 100 %라는보고입니다. 여기서 우분투의 원시 복사본을 시작하고 있지만 디스크 공간이 남아 있지 않다는 것을 알 수 있습니다.

$ 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 %를 소비하는 것을 어떻게 확인할 수 있습니까? boot2docker를 사용하여 OSX 10.9.4에서 실행되는 docker 1.3을 실행 중입니다.

감사.


편집 : 해결 방법 으로을 실행 boot2docker delete한 다음 boot2docker init모든 이미지를 휴지통에 버린 것으로 보입니다 (다행스럽게도 dockerfiles로 이미지를 다시 작성할 수 있습니다 ). 이제 신선한 우분투 이미지를 시작할 때 :

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 : 방금 많은 이미지를 다운로드했으며 우분투 이미지를 실행하고 여유 디스크 공간을 확인할 때 다음과 같이 표시됩니다.

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 OS를 실행하고 실제 도커 데몬을 실행합니다 (도커 데몬은 Windows에서 기본적으로 실행되지 않습니다).

가상 머신에 연결된 디스크는 도커 이미지를위한 스토리지를 제공합니다. boot2docker init 명령에 대한 추가 옵션을보고 초기 디스크 크기를 늘릴 수 있습니다. 이렇게하면 가상 머신에서 사용할 수있는 디스크 크기가 증가하지만 Queasy가 지적한대로 이미지에 사용 가능한 스토리지를 늘리려면 docker 데몬에 추가 옵션을 추가해야합니다.

컨테이너에서 "df -h"를 실행할 때보고 된 총 디스크 크기는 "dm.basesize"옵션을 사용하여 docker 데몬에 할당 된 디스크 공간의 크기입니다.

참고 : boot2docker는 Docker Toolbox를 위해 더 이상 사용되지 않습니다. 해당 버전으로 업그레이드 할 수 있습니다.이 경우 "boot2docker init"대신 "docker-machine create"를 사용하십시오. docker-toolbox로 전환 했으므로 boot2docker init에 필요한 명령 옵션을 테스트 할 수 없습니다


0

/ etc / sysconfig / docker-storage에서 도커 구성을 수정하고 다음 행을 추가하십시오.

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

초기화되면 데이터가 제거되므로이 작업을 진행하기 전에 도커를 백업하십시오.


--storage-optOSX에서 지원되지 않음
Quanlong

0

드라이브가 불량 일 수 있습니다. Hitachi (Drive Fitness Test), Seagate (Seatools) 및 Western Digital (Western Digital Data Lifeguard)은 모두이를 진단하는 데 도움이되는 무료 진단 소프트웨어를 제공합니다.

불량 드라이브가 디스크 공간으로 나사를 조이는 방법의 예로, Windows 에보 고 할 1TB 드라이브를 백업하여 PETABYTES 의 데이터를 남길 수 있습니다.

드라이브가 정상이면 du (디스크 사용)를 사용하여 어느 폴더가 큰 폴더인지 확인하십시오. du -h /usr/bin, du -h /var또는 du -h /home/[username]/Downloads도움말 핀 포인트 그것.

편집 : OS X를 사용하는 것을 보았습니다. 위에서 언급 한 HDD 도구를 부팅 가능한 옵션으로 사용하거나 무료 Windows PE와 같은 도구를 사용하여 부팅하고 실행할 수 있습니다.


0

devicemapper는 도커의 기본 저장소 엔진입니다. / var / lib / docker에서 기본적으로 100Gb를 미리 할당하려고 시도합니다. 이 공간이 모두 실제로 사용되는 것은 아니며 옵션에서 구성 할 수 있습니다. 도커 문서

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.