HomePtNotíciaComo armazenar imagens e contêineres do Docker em uma unidade externa

Como armazenar imagens e contêineres do Docker em uma unidade externa

- Advertisement -


O Docker armazena imagens baixadas, contêineres em execução e dados de volume persistentes em um único diretório raiz compartilhado na unidade do sistema. Você pode personalizar sua configuração para usar uma unidade externa, um compartilhamento de rede ou uma segunda unidade interna se precisar adicionar armazenamento à sua configuração.

Preparação

A parte principal deste guia se aplica ao Docker Engine para Linux e Docker Desktop no Windows e Mac. Você precisará encontrar seu Docker daemon.json arquivo em todas as três plataformas. Será em um dos seguintes locais:

  • /etc/docker/daemon.json no Linux.
  • %programdata%dockerconfigdaemon.json no Windows
  • ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json no Mac

O Docker recomenda que os usuários de Windows e Mac atualizem o arquivo de configuração por meio da interface do usuário, em vez de aplicar manualmente as alterações em um editor de texto. Você pode acessar a tela de configuração acessando Preferências > Docker Engine > Editar arquivo na interface do Docker Desktop.

Altere seu diretório de dados

A localização do diretório de dados do Docker é controlada pelo data-root configuração em seu arquivo de configuração. Versões antigas do Docker lançadas antes de 17.06 são usadas graph em vez de. Você pode verificar a versão que possui executando o docker version domínio.

$ docker version
...
Server: Docker Engine - Community
  Engine:
    Version: 20.10.17

Encontre ou adicione a chave relevante no arquivo de configuração. Defina o caminho do diretório desejado como seu valor. Aqui está um exemplo do Linux que armazenará dados do Docker em uma unidade externa montada no sistema de arquivos:

{
    "data-root": "/mnt/docker-data"
}

Você deve reiniciar o daemon do Docker após fazer a alteração:

$ sudo service docker restart

O Docker Desktop pode ser reiniciado no Windows e no Mac ao sair e iniciar uma nova instância.

Você deve copiar o conteúdo do diretório de dados atual para o novo caminho se desejar manter o conteúdo existente. Caso contrário, você começará do zero, incapaz de acessar contêineres e imagens criados anteriormente.

$ sudo rsync -aSv /var/lib/docker/ /mnt/docker-data

Altere o diretório de dados sem reinicializar

Você pode mover seu diretório de dados sem reiniciar o daemon criando um link simbólico de /var/lib/docker ao seu novo local. Isso pode ser útil se você estiver ficando sem espaço em um host em que uma reinicialização não programada do serviço Docker não seja uma opção viável.

Copie seus dados existentes do Docker para seu novo diretório:

$ sudo rsync -aSv /var/lib/docker/ /mnt/docker-data

Em seguida, crie um link simbólico que resolva /var/lib/docker para o local de destino:

$ sudo ln -s /mnt/docker-data/ /var/lib/docker

Não use essa técnica para cargas de trabalho que modificam rapidamente os dados do sistema de arquivos. Existe o risco de inconsistências se os dados forem gravados no tempo entre a cópia do diretório existente e a criação do link simbólico.

O que realmente muda?

Alterar o diretório raiz do Docker afeta todos os diferentes tipos de dados que o daemon armazena. Isso inclui suas imagens, contêineres, plug-ins instalados, configuração do Swarm e volumes, bem como o cache de compilação do Docker.

Modificar o caminho gravará todos esses dados em seu novo local. Você não pode mover seletivamente tipos específicos para separar os pontos de montagem. Isso significa que é importante selecionar um local de armazenamento que ofereça um bom desempenho geral. Usar uma unidade externa lenta pode prejudicar a capacidade de resposta do seu docker Operações de CLI, mesmo que sejam adequadas a determinados tipos de dados, como armazenamento de imagens de longo prazo.

Na ausência de suporte a caminho de dados por tipo, a exclusão de recursos não utilizados pode ser uma maneira melhor de gerenciar os requisitos de armazenamento do Docker. Em vez de alocar mais espaço para o Docker, limpe ativos redundantes e envie imagens não utilizadas para um registro central separado. Isso pode liberar espaço considerável em seu host.

Uso único de um diretório de dados diferente

Você pode iniciar o Docker Engine manualmente com um diretório de dados específico passando o --data-root sinalizador quando você inicia o daemon. Isso pode ser usado para alternar entre diretórios de dados ou executar uma instância limpa sem seus dados existentes.

$ sudo /usr/bin/dockerd --data-root /mnt/docker-data

O sinalizador substituirá o caminho do diretório especificado pelo daemon.json processos. O diretório configurado permanecerá intacto para que você possa retornar a essa instância no futuro.

Resumo

O Docker armazena todos os seus dados, incluindo imagens compiladas e extraídas, contêineres criados e volumes em uma única árvore de diretórios. A raiz geralmente /var/lib/docker mas você pode personalizá-lo adicionando uma configuração ao seu arquivo de configuração ou fornecendo o --data-root sinalizador quando você inicia o daemon.

Alterar o diretório de dados significa que seus dados existentes não aparecerão no Docker, a menos que você os copie para o novo caminho. Você pode usar esse recurso para manter vários repositórios de armazenamento Docker separados, como um para projetos pessoais e outro para trabalho. No entanto, você precisará reiniciar o daemon antes de alternar os contextos, pois apenas uma instância pode ser executada por vez.

- Advertisement -
- Advertisement -
Stay Connected
16,985FansLike
2,458FollowersFollow
61,453SubscribersSubscribe
Must Read
- Advertisement -
Related News
- Advertisement -
%d bloggers like this: