search
HomeSystem TutorialLINUXChange the default image and container storage path of Docker on CentOS

Change the default image and container storage path of Docker on CentOS

Jan 09, 2024 am 11:22 AM
linuxlinux tutorialRed Hatlinux systemlinux commandlinux certificationred hat linuxlinux video

Introduction Docker image is a read-only template; the image can be used to create Docker containers; Docker provides a very simple mechanism to create images or update existing images, and users can even download them directly from others A ready-made image for immediate use.
1. Why?

Usually, when you start using docker, we don't care much about the default directory Docker uses to store images and containers. When experimenting more with Docker, you have to hit the panic button when Docker starts taking up a lot of space. So now it’s time to turn to troubleshooting on how to change docker’s default storage location. After going through a lot of trouble on many websites and forums, I can't figure out the steps to change the default directory for Docker images and containers on a CentOS7 host. This post provides instructions specific to Centos7 (it also applies to RHEL7). For Debian I could find a lot of documentation and "how to" articles on the internet, but not much for Centos7.

2. How?

When trying to change Docker's default storage location, we must know some important information.

The default storage location currently used by Docker

Storage driver currently used by Docker

New storage space to store images and containers

The default location of Docker is /var/lib/docker, where all current images and containers are stored. If you have any running containers, stop them and make sure no containers are running, then run the following command to determine the storage driver currently used by Docker. (You’ll find out why it’s recorded in a later article)

# docker info

In the output information, look for the Storage Driver line and write it down. On my host machine is devicemapper. The next step is to stop the Docker service

# sudo systemctl stop docker

Create a Drop-In file

The next step is to create a Drop-In file "docker.conf" in the /etc/systemd/system/docker.service.d directory. The default docker.service.d folder does not exist. So you have to create it first.

# sudo mkdir /etc/systemd/system/docker.service.d

# sudo touch /etc/systemd/system/docker.service.d/docker.conf

The reason for creating the Drop-In file is that we want the Docker service to use the specific parameters mentioned in the docker.conf file and replace the parameters used by the default service in the /lib/systemd/system/docker.service file. to cover. If you want to learn more about Drop-In, please read the system.unit documentation

Define new storage location

Now open docker.conf and add the following content:

# sudo vi /etc/systemd/system/docker.service.d/docker.conf

[Service]

ExecStart= ExecStart=/usr/bin/dockerd --graph="/mnt/new_volume" --storage-driver=devicemapper

Save and exit the VI editor, /mnt/new_volume 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 reviewed and noted in the previous step. More information about various storage drives is available in the official Docker documentation. Now, you can reload the service daemon and start the Docker service. This will change where new images and containers are stored.

# sudo systemctl daemon-reload

# sudo systemctl start docker

To confirm that everything is OK, run the # docker info command to check the Docker root directory. It will be changed to /mnt/new_volume

What should you do if you already have existing containers and images?

If you want to migrate existing containers and images to a new location, do not reload the daemon and start the docker service after modifying docker.conf (

Note: I haven't tried the following as I don't need to keep existing containers and images, but these steps should work; please comment below if you encounter any issues and any alternative methods. I will modify the post. Before you take the plunge, back up your data.

# cp -rp /var/lib/docker /mnt/new_volume

Create soft link (

# mv /var/lib/docker /var/lib/docker-backup-2017-0510

# ln -s /mnt/new_volume/docker /var/lib/docker

Then reload the daemon and start the docker service. (

# sudo systemctl daemon-reload # sudo systemctl start docker

The existing data should now be in the source directory of the soft link, and the new containers and images will be stored in the new location, i.e. /mnt/new_volume/docker. Run # docker info to confirm.

...Omit output

Name: docker

ID: 5WBA:EF4D:WQ7P:DVRN:JCI4:LWDT:XSR2:G7RE:F5TI:PD3B:A57K:E4QA

Docker Root Dir: /mnt/new_volume/docker

...Omit output

Note: The fonts with italics and horizontal lines in the text mean that the author of the original text has errors (the English is not good, if there is any misunderstanding of the meaning of the original text, please point it out in time and feel free to enlighten me), the relevant positions are There are comments.


The above is the detailed content of Change the default image and container storage path of Docker on CentOS. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:Linux就该这么学. If there is any infringement, please contact admin@php.cn delete
What are the main tasks of a Linux system administrator?What are the main tasks of a Linux system administrator?Apr 19, 2025 am 12:23 AM

The main tasks of Linux system administrators include system monitoring and performance tuning, user management, software package management, security management and backup, troubleshooting and resolution, performance optimization and best practices. 1. Use top, htop and other tools to monitor system performance and tune it. 2. Manage user accounts and permissions through useradd commands and other commands. 3. Use apt and yum to manage software packages to ensure system updates and security. 4. Configure a firewall, monitor logs, and perform data backup to ensure system security. 5. Troubleshoot and resolve through log analysis and tool use. 6. Optimize kernel parameters and application configuration, and follow best practices to improve system performance and stability.

Is it hard to learn Linux?Is it hard to learn Linux?Apr 18, 2025 am 12:23 AM

Learning Linux is not difficult. 1.Linux is an open source operating system based on Unix and is widely used in servers, embedded systems and personal computers. 2. Understanding file system and permission management is the key. The file system is hierarchical, and permissions include reading, writing and execution. 3. Package management systems such as apt and dnf make software management convenient. 4. Process management is implemented through ps and top commands. 5. Start learning from basic commands such as mkdir, cd, touch and nano, and then try advanced usage such as shell scripts and text processing. 6. Common errors such as permission problems can be solved through sudo and chmod. 7. Performance optimization suggestions include using htop to monitor resources, cleaning unnecessary files, and using sy

What is the salary of Linux administrator?What is the salary of Linux administrator?Apr 17, 2025 am 12:24 AM

The average annual salary of Linux administrators is $75,000 to $95,000 in the United States and €40,000 to €60,000 in Europe. To increase salary, you can: 1. Continuously learn new technologies, such as cloud computing and container technology; 2. Accumulate project experience and establish Portfolio; 3. Establish a professional network and expand your network.

What is the main purpose of Linux?What is the main purpose of Linux?Apr 16, 2025 am 12:19 AM

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

Does the internet run on Linux?Does the internet run on Linux?Apr 14, 2025 am 12:03 AM

The Internet does not rely on a single operating system, but Linux plays an important role in it. Linux is widely used in servers and network devices and is popular for its stability, security and scalability.

What are Linux operations?What are Linux operations?Apr 13, 2025 am 12:20 AM

The core of the Linux operating system is its command line interface, which can perform various operations through the command line. 1. File and directory operations use ls, cd, mkdir, rm and other commands to manage files and directories. 2. User and permission management ensures system security and resource allocation through useradd, passwd, chmod and other commands. 3. Process management uses ps, kill and other commands to monitor and control system processes. 4. Network operations include ping, ifconfig, ssh and other commands to configure and manage network connections. 5. System monitoring and maintenance use commands such as top, df, du to understand the system's operating status and resource usage.

Boost Productivity with Custom Command Shortcuts Using Linux AliasesBoost Productivity with Custom Command Shortcuts Using Linux AliasesApr 12, 2025 am 11:43 AM

Introduction Linux is a powerful operating system favored by developers, system administrators, and power users due to its flexibility and efficiency. However, frequently using long and complex commands can be tedious and er

What is Linux actually good for?What is Linux actually good for?Apr 12, 2025 am 12:20 AM

Linux is suitable for servers, development environments, and embedded systems. 1. As a server operating system, Linux is stable and efficient, and is often used to deploy high-concurrency applications. 2. As a development environment, Linux provides efficient command line tools and package management systems to improve development efficiency. 3. In embedded systems, Linux is lightweight and customizable, suitable for environments with limited resources.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.