Por que o docker está relatando 100% de uso de disco em uma nova imagem do Ubuntu?

15

Eu não consigo mais usar o docker ou executar novas imagens com eficiência - ele informa que tenho 100% de uso de disco. Aqui, você pode ver que eu estou lançando uma cópia do ubuntu, e ainda assim está me dizendo que não tenho espaço em disco:

$ 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

Separadamente, estou tentando iniciar uma instância do mysql e ela está me dando mensagens de erro que acredito estarem conectadas ao fato de eu não ter nenhum disco disponível. Quando tento rodar o orchardup / mysql, fico:

ERROR: 1030  Got error 28 from storage engine

O que significa que ficou sem espaço de armazenamento.

Considerando isso, como devo interpretar o relatório df -h acima e como posso determinar o que está consumindo 100% do meu disco? Estou executando o Docker 1.3, executando no OSX 10.9.4, usando o boot2docker.

Obrigado.

Editar: Como solução alternativa, executei boot2docker delete e, em seguida, boot2docker init , e parece que ele removeu todas as minhas imagens (felizmente, posso reconstruí-las com meus dockerfiles ). Agora, quando eu começo uma nova imagem do 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

Muito melhor. Mas, eu ainda estou confuso, deve haver algum tipo de disco global compartilhado em todas as imagens hospedadas pelo boot2docker que anteriormente foram preenchidas?

Editar 2: Acabei de baixar um monte de imagens, e agora aqui está o que eu vejo quando eu corro a imagem do Ubuntu e verifique o espaço livre em disco:

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

De 3% a 16% consumidos! Claramente há algum tipo de disco compartilhado entre todas as minhas imagens que não estou entendendo ...

    
por esilverberg 19.10.2014 / 23:34

4 respostas

1

Nos hosts Windows, o boot2docker funciona criando uma máquina virtual usando a caixa virtual. Quando você executa boot2docker init, ele cria uma máquina virtual e, por padrão, atribui 20G ao disco raiz. essa máquina virtual executa um sistema operacional Linux mínimo que, por sua vez, executa o daemon do docker real (o daemon do docker não é executado nativamente no Windows - ainda).

o disco conectado à máquina virtual fornece armazenamento para as imagens docker. Assim, você pode procurar opções adicionais no comando boot2docker init para aumentar o tamanho inicial do disco. Isso aumentará o tamanho do disco disponível para uso na máquina virtual, mas, como apontou Queasy, você precisa adicionar as opções adicionais ao daemon do docker para aumentar o armazenamento disponível para as imagens.

quando você executa "df -h" no contêiner, o tamanho total do disco relatado é o do espaço em disco alocado para o daemon do docker usando a opção "dm.basesize".

nota: o boot2docker agora está obsoleto em favor do Docker Toolbox. você pode querer atualizar para essa versão, caso em que você usaria "docker-machine create" em vez de "boot2docker init". eu mudei para docker-toolbox, portanto, não posso testar as opções de comando necessárias para o boot2docker init

    
por 01.04.2016 / 15:02
0

Modifique a configuração do docker em / etc / sysconfig / docker-storage e adicione a linha:

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

Lembre-se de fazer o backup da sua janela de encaixe antes de continuar com esta tarefa porque ela removerá seus dados depois de inicializada.

    
por 18.09.2015 / 18:57
0

Considere que a unidade pode estar com problemas. A Hitachi (Drive Fitness Test), a Seagate (Seatools) e a Western Digital (Western Digital Data Lifeguard) oferecem software de diagnóstico gratuito para ajudá-lo a determinar isso.

Como um exemplo de como uma unidade defeituosa pode estragar com espaço em disco, fiz backup de unidades de 1 TB que informam ao Windows que ainda têm PETABYTES de dados para transferência.

Caso sua unidade esteja bem, use du (Disk Usage) para ver qual pasta é a grande. du -h /usr/bin , du -h /var ou du -h /home/[username]/Downloads para ajudar a identificar.

Editar: vi que você está usando o OS X: Você precisará usar as ferramentas do HDD mencionadas acima como opções inicializáveis ou algo parecido com o Windows PE gratuito, em que você poderá inicializar e executar essas ferramentas.

    
por 18.11.2015 / 11:24
0

O mapeador de dispositivos é o mecanismo de armazenamento padrão do docker. Ele tenta pré-alocar 100Gb por padrão no / var / lib / docker. Nem todo esse espaço é realmente usado, e você pode configurá-lo nas opções. docs do Docker

    
por 24.04.2016 / 18:45