Respostas:
Acredito que neste guia você terá uma boa explicação.
Você pode alterar o diretório base de armazenamento do Docker (para onde vão o contêiner e as imagens) usando a opção -g ao iniciar o daemon do Docker.
Ubuntu / Debian: edite seu
/etc/default/docker
arquivo com a-g
opção:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"
Fedora / Centos: edite
/etc/sysconfig/docker
e adicione a-g
opção na variável other_args: ex.other_args="-g /var/lib/testdir"
. Se houver mais de uma opção, inclua-as em "". Após uma reinicialização, (reinicialização da docker de serviço) O Docker deve usar o novo diretório.O uso de um link simbólico é outro método para alterar o armazenamento de imagens.
Cuidado - Essas etapas dependem do seu / var / lib / docker atual ser um diretório real (não um link simbólico para outro local).
1) Parar janela de encaixe:
service docker stop
. Verifique se nenhum processo do docker está executando o ps faux2) O docker de verificação dupla realmente não está sendo executado. Dê uma olhada no diretório atual do docker: ls
/var/lib/docker/
2b) Faça um backup -
tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz
3) Mova o
/var/lib/docker
diretório para sua nova partição:mv /var/lib/docker /mnt/pd0/docker
4) Faça um link simbólico:
ln -s /mnt/pd0/docker /var/lib/docker
5) Dê uma olhada na estrutura de diretórios para garantir que ela se parecesse com a mv:
ls /var/lib/docker/
(observe a barra à direita6) Inicie o docker de backup
service docker start
7) reinicie seus contêineres resolva o link simbólico)
Para alterar o data
diretório em docker
que ele precisa ser executado com a opção -g /my/data
. No meu /etc/default/docker
conjunto:
DOCKER_OPTS="-g /srv/docker"
Veja também minhas anotações aqui .
Para alterar o data
diretório lxc
, coloquei /etc/lxc/lxc.conf
:
lxc.lxcpath = /srv/lxc
Para expandir a resposta de @ MattK:
A documentação do Docker sobre o controle do daemon do Docker sugere que a maneira independente de plataforma de fazer isso é:
edite o arquivo /etc/docker/daemon.json para conter a linha
{
"data-root": "/mnt/docker-data",
(...)
}
onde /mnt/docker-data
é o diretório em que você deseja que as imagens e os contêineres do docker residam.
Então
sudo systemctl restart docker
Você pode verificar se funcionou executando
docker info
e procure o conteúdo da linha que começa com Docker Root Dir:
.
Consulte também https://stackoverflow.com/a/50217666/2209313 e https://unix.stackexchange.com/q/452368/36043 .