Moving Docker Runtime and Storage Location
For the Linux operating system, these steps document how to free up some space in the root volume of your operating system by moving the docker runtime location from /var/lib/docker/ to the /home volume.
The runtime directory is where Docker images, containers, and volumes are stored.
Stop Docker
sudo systemctl stop docker
# verify docker has stopped
ps aux | grep -i docker | grep -v grep    
Configure Docker daemon
- We’re using a JSON configuration file to specify the runtime folder location. These Docker docs contain more information: Control Docker with systemd; Configure and troubleshoot the Docker daemon
Create or update the /etc/docker/daemon.json configuration file. e.g.,
sudo nano /etc/docker/daemon.json
Create the new location directory structure under /home. e.g.,
cd ~/
mkdir -p .local/share/docker
Enter the new /home Docker runtime and storage location in the configuration file for user gilfoyle in this example. e.g.,
daemon.json
{
    "data-root": "/home/gilfoyle/.local/share/docker"
}
Use rsync to transfer the files to the new location. e.g.,
sudo rsync -axPS /var/lib/docker/ /home/gilfoyle/.local/share/docker

Start Docker
sudo systemctl start docker
Remove the pre-existing files after testing.
rm -rf /var/lib/docker
- If you had portainer deployed previously, you may need to redeploy it and remove any orphaned containers and volumes.
