Methods to Retailer Docker Pictures and Containers on an Exterior Drive


Docker shops downloaded photographs, working containers, and protracted quantity knowledge in a single shared listing root in your system drive. You may customise your configuration to make use of an exterior drive, community share, or second inside disc if that you must add storage to your set up.


The primary a part of this information applies to Docker Engine for Linux and Docker Desktop on Home windows and Mac. You’ll want to seek out your Docker daemon.json file on all three platforms. This will probably be in one of many following places:

  • /and many others/docker/daemon.json on Linux.
  • %programdatapercentdockerconfigdaemon.json on Home windows.
  • ~/Library/Containers/com.docker.docker/Information/database/com.docker.driver.amd64-linux/and many others/docker/daemon.json on Mac.

Docker advises that Home windows and Mac customers replace the config file through the UI, as a substitute of manually making use of adjustments in a textual content editor. You may entry the settings display screen by heading to Preferences > Docker Engine > Edit file within the Docker Desktop interface.

Altering Your Information Listing

The placement of Docker’s knowledge listing is managed by the data-root setting in your config file. Outdated Docker variations launched previous to 17.06 used graph as a substitute. You may test the model you’ve bought by working the docker model command.

$ docker model
Server: Docker Engine - Neighborhood
    Model: 20.10.17

Discover or add the related key contained in the config file. Set your required listing path as its worth. Right here’s a Linux instance that’ll retailer Docker knowledge to an exterior drive mounted within the filesystem:

    "data-root": "/mnt/docker-data"

You have to restart the Docker daemon after you make the change:

$ sudo service docker restart

Docker Desktop will be restarted on Home windows and Mac by exiting it after which launching a brand new occasion.

It is best to copy the contents of your present knowledge listing to the brand new path if you wish to retain your present content material. In any other case you’ll begin with a clear slate, unable to entry beforehand created containers and pictures.

$ sudo rsync -aSv /var/lib/docker/ /mnt/docker-data

Altering the Information Listing And not using a Restart

You may transfer your knowledge listing with out restarting the daemon by making a symlink from /var/lib/docker to your new location. This might be helpful should you’re working out of house on a bunch the place an unscheduled Docker service restart isn’t a viable choice.

Copy your present Docker knowledge to your new listing:

$ sudo rsync -aSv /var/lib/docker/ /mnt/docker-data

Then create a symlink that resolves /var/lib/docker to the goal location:

$ sudo ln -s /mnt/docker-data/ /var/lib/docker

Don’t use this system for workloads that quickly modify filesystem knowledge. There’s a danger of inconsistencies occurring if knowledge will get written within the time between you copying the present listing and creating the symlink.

What Truly Modifications?

Altering Docker’s root listing impacts all of the totally different knowledge varieties that the daemon shops. This consists of your photographs, containers, put in plugins, Swarm configuration, and volumes, in addition to the Docker construct cache.

Modifying the trail will write all this knowledge to your new location. You may’t selectively transfer particular varieties to separate mount factors. This implies it’s vital to pick out a storage location that can provide good total efficiency. Utilizing a gradual exterior drive may hurt the responsiveness of docker CLI operations, even when it will swimsuit sure kinds of knowledge corresponding to long-term picture storage.

Within the absence of per-type knowledge path assist, pruning unused sources generally is a higher strategy to handle Docker’s storage necessities. As a substitute of allocating Docker more room, clear up redundant property and push unused photographs to a separate central registry. This may unencumber appreciable house in your host.

One-Time Use of a Totally different Information Listing

You may manually begin Docker Engine with a selected knowledge listing by passing the --data-root flag once you begin the daemon. This can be utilized to change between knowledge directories or run a clear occasion with out your present knowledge.

$ sudo /usr/bin/dockerd --data-root /mnt/docker-data

The flag will override the listing path specified by the daemon.json file. The configured listing will stay intact so you possibly can revert to that occasion sooner or later.


Docker shops all its knowledge together with constructed and pulled photographs, created containers, and volumes inside a single listing tree. The basis is often /var/lib/docker however you possibly can customise it by including a setting to your config file or supplying the --data-root flag once you begin the daemon.

Altering the information listing means your present knowledge gained’t seem in Docker except you copy it to the brand new path. You should use this function to keep up a number of unbiased Docker storage repositories, corresponding to one for private initiatives and one other for work. You’ll must restart the daemon earlier than you turn contexts although, as just one occasion can run concurrently.

Supply hyperlink