Existem poucas opções para alterar o local onde as imagens e volumes do Docker são armazenados. Você pode tornar /var/lib/docker
um ponto de montagem para alguma nova partição; ou link de símbolo var/lib/docker
para um caminho em determinados sistemas de arquivos. A abordagem abaixo envolve atualizar docker.service
no systemd
com o novo caminho.
O risco dessa abordagem é que, de tempos em tempos, quando o Docker é atualizado, há uma chance de que o arquivo
docker.service
atualizado seja revertido para as configurações padrão. Nesse caso, você não verá as imagens e volumes atuais e terá que atualizar o arquivo novamente.
$ sudo systemctl stop casaos*.service
$ sudo systemctl status casaos.service
○ casaos.service - CasaOS Service
Loaded: loaded (/etc/systemd/system/casaos.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sat 2022-08-13 12:58:08 EDT; 6min ago
Process: 9812 ExecStart=/usr/bin/casaos -c /etc/casaos.conf (code=killed, signal=TERM)
Main PID: 9812 (code=killed, signal=TERM)
CPU: 2.181s
$ sudo systemctl stop docker.*
$ sudo systemctl status docker.service
○ docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Sat 2022-08-13 13:07:59 EDT; 2s ago
TriggeredBy: ○ docker.socket
Docs: https://docs.docker.com
Process: 565 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=>
Main PID: 565 (code=exited, status=0/SUCCESS)
CPU: 1min 54.225s
docker.socket
está funcionando$ sudo systemctl status docker.socket
○ docker.socket - Docker Socket for the API
Loaded: loaded (/lib/systemd/system/docker.socket; enabled; vendor preset: enabled)
Active: inactive (dead) since Sat 2022-08-13 13:07:59 EDT; 5s ago
Triggers: ● docker.service
Listen: /run/docker.sock (Stream)
CPU: 1ms
$ sudo mkdir -p /path/to/new/location
Neste exemplo, o caminho é
/path/to/new/location
. Certifique-se de que ele seja alterar para o caminho desejado.
Como usuário root
ou usando privilégio sudo
, atualize /lib/systemd/system/docker.service
para incluir o parâmetro --data-root /path/to/new/location
na linha que começa com ExecStart=
. Usando o sudo vim /lib/systemd/system/docker.service
para atualizar.
Por exemplo, se anteriormente a linha se parece com
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root /path/to/new/location
/var/lib/docker
para o novo caminho.$ sudo rsync -avxP /var/lib/docker/ /path/to/new/location
Caso algo dê errado e precise ser revertido, não movemos o conteúdo. Em vez disso, usamos
rsync
para copiar o conteúdo para o novo caminho.
$ sudo reboot
/var/lib/docker/*
para recuperar algum espaço de armazenamento$ sudo rm -rf /var/lib/docker/*
Se o comando acima não limpar a pasta completamente, tente
sudo su
seguido derm -rf /var/lib/docker/*
Elaborado a partir do Texto Original
Créditos ao Site Linux Config
Canal no Discord