Skip to content

Instantly share code, notes, and snippets.

@kewogc
Last active February 21, 2024 14:13
Show Gist options
  • Save kewogc/5849f8e3a7fb036611eca8493969f2a6 to your computer and use it in GitHub Desktop.
Save kewogc/5849f8e3a7fb036611eca8493969f2a6 to your computer and use it in GitHub Desktop.
Relocating the Docker root directory

Stop the Docker services:

  sudo systemctl stop docker
  sudo systemctl stop docker.socket
  sudo systemctl stop containerd

Copy docker root files to new dir

sudo rsync -aP /var/lib/docker/ /some_new_dir

Change docker config data-root

sudo vi /etc/docker/daemon.json
# add or change to
{
  "data-root": "/some_new_dir"
}

Rename docker root to old

sudo mv /var/lib/docker /var/lib/docker.old

Start docker service sudo systemctl start docker

Validate the new Docker root location:

docker info -f '{{ .DockerRootDir}}'

If after start docker containers we got error like:

Error response from daemon: error evaluating symlinks from mount source "/var/lib/docker/volumes/.../_data": lstat /var/lib/docker: no such file or directory

We need to change configs in containers:

find /some_new_dir -type f -name 'config.v2.json' -exec sed -i 's%/var/lib/docker%/some_new_dir%g' {} \;

If everything is ok, remove old docker root

sudo rm -rf /var/lib/docker.old

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment