Mova os dados do docker (imagens e contêineres) para uma unidade separada com FS diferente

Mova os dados do docker (imagens e contêineres) para uma unidade separada com FS diferente

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

Como sei, posso mudar /var/lib/dockerpara uma unidade separada e criar um link virtual para ela. Mas eu li que o BTRFS é a melhor opção de sistema de arquivos para o docker.

Mas suspeito que não seja suficiente formatar a unidade externa para BTRFS e mover a pasta existente para ela. A meu ver, o conteúdo desta pasta depende do sistema de arquivos em uso.

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

Responder1

Como você afirmou, simplesmente mover ou copiar as imagens/contêineres do docker da unidade formatada padrão AUFS para BTRFS não funcionará. Portanto, como primeira etapa, você pode confirmar todos os seus contêineres como imagens e usar docker savecomandos para salvar as imagens como arquivos .tar e, depois de preparar o docker para usar o btrfs, execute docker loadpara carregar as imagens no novo driver de armazenamento.

As etapas seriam aproximadamente as seguintes - foi isso que fiz na minha caixa Ubuntu 14.10 -

  • Salve suas imagens
    docker save IMAGEID > /tmp/redis.tar
  • Preparar btrfs
mkfs.btrfs /dev/sdb
 mkdir /var/lib/docker-btrfs
 montar /dev/sdb /var/lib/docker-btrfs/
  • Pare o docker e configure o docker para utilizar o btrfs e executá-lo.
parada de janela de serviço
docker -d -s btrfs --graph="/var/lib/docker-btrfs" -H unix:///var/run/docker.sock

A etapa acima também pode ser realizada modificando /etc/default/docker.

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

Você poderá ver as imagens e executar contêineres a partir daqui. Para contêineres, você também pode tentar métodos exporte import, mas nunca tentei esse.

informação relacionada