Os dados de tempo de execução do Docker, incluindo imagens, contêineres, redes e volumes de armazenamento, são armazenados no diretório /var/lib/docker por padrão. Se a capacidade do disco rígido for limitada, precisamos modificar este local de armazenamento
As etapas de modificação são as seguintes:
-
Pare o serviço Docker:
sudo systemctl stop docker
-
Crie um novo diretório para armazenar dados de tempo de execução do Docker:
sudo mkdir /new/docker/image/path
-
Copie o diretório de dados de tempo de execução padrão do Docker para o novo diretório:
sudo rsync -axPS /var/lib/docker/ /new/docker/image/path
-
Abra o arquivo de configuração do Docker:
sudo vim /etc/docker/daemon.json
-
Adicione o seguinte ao arquivo:
{
"graph": "/new/docker/image/path" // docker版本不同可能 "graph"应该替换为"data-root"
}
-
Salve e feche o arquivo.
-
Inicie o serviço Docker:
sudo systemctl start docker
-
exclua o diretório original
O diretório /var/lib/docker contém os seguintes subdiretórios:
- contêineres: armazena metadados e informações de estado dos contêineres.
- imagem: armazena os metadados e dados da camada da imagem.
- rede: armazena metadados e informações de status da rede Docker.
- plugins: armazena os dados dos plugins do Docker.
- swarm: armazena metadados e informações de status do cluster Swarm.
- tmp: Armazena arquivos temporários quando o Docker está em execução.
- confiança: armazena assinaturas de imagem Docker e dados confiáveis.
- volumes: armazena dados de volumes Docker.
Explicação do comando rsync -axPS:
usado para sincronizar arquivos e diretórios de um local para outro. Suas opções possuem os seguintes significados:
- -a: modo de arquivamento, retém todos os atributos do arquivo, incluindo permissões, proprietário, grupo, carimbo de data/hora, etc.
- -x: Não ultrapassa os limites do sistema de arquivos, evitando cruzar diferentes sistemas de arquivos durante a sincronização.
- -P: Exibe o progresso e continua a transferência. Se a transferência for interrompida, a próxima transferência poderá continuar de onde foi interrompida.
- -S: Mantém os arquivos esparsos, ou seja, serão transferidos apenas os blocos de dados que realmente existem no arquivo.
Este comando geralmente é usado para fazer backup e sincronizar arquivos e diretórios e pode sincronizar arquivos entre hosts locais ou remotos.