Mover dados do docker (imagens e containers) para separar o drive com FS diferentes

6

Estou planejando mover os dados do docker (imagens e contêineres) para a unidade separada, pois eles exigem muito espaço.

Como sei, posso mover /var/lib/docker para separar a unidade e criar um link flexível para ela. Mas eu li que o BTRFS é a melhor opção de sistema de arquivos para o docker.

Mas eu suspeito que não é suficiente formatar o disco externo para o BTRFS e mover a pasta existente para ele. Como eu vejo o conteúdo desta pasta depende do sistema de arquivos usando.

Como posso mover (recriar) a pasta docker (imagens e containers) na unidade externa com o sistema de arquivos diferente corretamente?

    
por demas 01.05.2015 / 14:19

1 resposta

6

Como você afirmou, simplesmente mover ou copiar as imagens / contêineres do docker do padrão AUFS para a unidade formatada BTRFS não funcionará. Então, como primeiro passo, você pode comprometer todos os seus contêineres como imagens e usar os comandos docker save para salvar as imagens como arquivos .tar e depois de ter preparado a janela de encaixe para usar o btrfs, execute docker load para carregar as imagens novo driver de armazenamento.

Os passos seriam mais ou menos como segue - isto é o que eu fiz na minha caixa Ubuntu 14.10 -

  • Salve suas imagens em docker save IMAGEID > /tmp/redis.tar
  • Prep btrfs
 mkfs.btrfs /dev/sdb
 mkdir /var/lib/docker-btrfs
 mount /dev/sdb /var/lib/docker-btrfs/
  • Pare a janela de encaixe e defina a janela de encaixe para utilizar o btrfs e executá-lo.
service docker stop
docker -d -s btrfs  --graph="/var/lib/docker-btrfs"  -H unix:///var/run/docker.sock

O passo acima também pode ser realizado modificando o / etc / default / docker.

  • Carregue as imagens.
docker load --input /tmp/redis.tar

Você deve poder ver as imagens e executar contêineres daqui. Para contêineres, você também pode tentar os métodos export e import , mas nunca tentei usá-lo.

    
por 02.05.2015 / 18:53

Tags