How to modify the default storage location of Docker images (solution)

How to modify the default storage location of Docker images (solution)

Due to the initial partitioning of the system, the corresponding / partition in the operating system will not be too large, and the /var directory will not be partitioned separately. If you run the Docker service on it, after a long period of use, the originally large partition will become increasingly insufficient. How to better deal with this problem?

1. Use soft links

We know that in the operating system, by default, the storage location of the Docker container is under the /var/lib/docker directory. You can view the specific location through the following command.

#Default storage location$ sudo docker info | grep "Docker Root Dir"

The most direct and effective way to solve the problem of insufficient default storage capacity is to mount a new partition to this directory. However, in the case that the original system space remains unchanged, the soft link method is adopted to modify the storage path of the image and container to achieve the same purpose.

# Stop the Docker service $ systemctl restart docker  
# Stop the Docker service $ service docker stop

Then move the entire /var/lib/docker directory to a destination path that does not take up too much space. When you start Docker at this time, you will find that the storage directory is still the /var/lib/docker directory, but it is actually stored on the data disk /data/docker.

# Move the original content $ mv /var/lib/docker /data/docker  
# Link $ ln -sf /data/docker /var/lib/docker

2. Specify container startup parameters

In the configuration file, specify the container startup parameter --graph=/var/lib/docker to specify the image and container storage path. Docker's configuration file can set most of the background process parameters, and its storage location is inconsistent in each operating system. The location in Ubuntu is /etc/default/docker file and the location in CentOS is /etc/sysconfig/docker file.

# CentOS6  
# Because Ubuntu enables the selinux mechanism by default OPTIONS=--graph="/data/docker" --selinux-enabled -H fd://  
# CentOS7  
# Modify the docker.service file and use the -g parameter to specify the storage location $ vi /usr/lib/systemd/system/docker.service  
ExecStart=/usr/bin/dockerd --graph /new-path/docker 
#Ubuntu  
# Because Ubuntu does not enable the selinux mechanism by default OPTIONS=--graph="/data/docker" -H fd://

After restarting, the Docker path is changed to /data/docker.

# Reload the configuration file $ sudo systemctl daemon-reload  
# Restart the docker service $ sudo systemctl restart docker.service

If the Docker version is 1.12 or above, you can modify or create a new daemon.json file. The modification will take effect immediately without restarting the Docker service.

# Modify the configuration file $ vim /etc/docker/daemon.json  
{  
    "registry-mirrors":  
        ["http://7e61f7f9.m.daocloud.io"],  
    "graph": "/new-path/docker"  
}

3. Create a configuration file under System

Create a Drop-In file docker.conf in the /etc/systemd/system/docker.service.d directory. By default, the docker.service.d folder does not exist and must be created first. The reason for creating a Drop-In file is that we want the Docker service to use specific parameters mentioned in the docker.conf file, overwriting the parameters used by the default service in the /lib/systemd/system/docker.service file.

# Define a new storage location $ sudo vi /etc/systemd/system/docker.service.d/docker.conf  
[Service]  
ExecStart=/usr/bin/dockerd --graph="/data/docker" --storage-driver=devicemapper

Save and exit the vim editor. /data/docker is the new storage location, and devicemapper is the storage driver currently used by Docker. If your storage driver is different, enter the value you checked and wrote down in the first step. You can now reload the service daemon and start the Docker service, which will change the location where the new images and containers are stored. To confirm that everything went well, run the docker info command to check the Docker root directory.

# Reload the configuration file $ sudo systemctl daemon-reload  
# Restart the docker service $ sudo systemctl start docker

This is the end of this article about how to modify the default storage location of Docker images. For more information about the default storage location of Docker images, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Docker Modify Docker storage location Modify container image size limit operation
  • How to modify the storage location of Docker default images and containers
  • How to view image information in Docker

<<:  Detailed explanation of flex and position compatibility mining notes

>>:  Graphical explanation of the underlying principle of JavaScript scope chain

Recommend

How to implement the paging function of MyBatis interceptor

How to implement the paging function of MyBatis i...

Installation tutorial of mysql5.7.21 decompression version under win10

Install the unzipped version of Mysql under win10...

HTML table tag tutorial (33): cell vertical alignment attribute VALIGN

In the vertical direction, you can set the cell a...

Reasons and solutions for prompting to save action after uploading files in form

The json data must be returned in html format That...

Teach you step by step to develop a brick-breaking game with vue3

Preface I wrote a few examples using vue3, and I ...

Specific use of Linux man command

01. Command Overview Linux provides a rich help m...

Two simple menu navigation bar examples

Menu bar example 1: Copy code The code is as foll...

Vue3 implements Message component example

Table of contents Component Design Defining the f...

Summary of H5 wake-up APP implementation methods and points for attention

Table of contents Preface Jump to APP method URL ...

Detailed explanation of JavaScript BOM composition and common events

Table of contents 1. BOM 2. Composition of BOM 2....

Detailed explanation of MySQL execution plan

The EXPLAIN statement provides information about ...

Solve the problem of blank gap at the bottom of Img picture

When working on a recent project, I found that th...

WML tag summary

Structure related tags ---------------------------...

How does MySQL implement ACID transactions?

Preface Recently, during an interview, I was aske...