首页 > 系统相关 >在linux中迁移Docker默认镜像存储路径解决磁盘空间满的问题

在linux中迁移Docker默认镜像存储路径解决磁盘空间满的问题

时间:2024-04-11 09:34:49浏览次数:15  
标签:存储 路径 sudo 磁盘空间 linux Docker data docker

通过yum或者apt安装的docker通常数据存储在 /var/lib/docker/ ,包括镜像、运行数据等。然而这个目录是在根目录下面,容易导致系统盘满了。如果出现这种情况就需要迁移docker的默认目录。

以下基于此说明。

本文使用到的docker版本为 Docker Version: 24.0.5,宿主机为 CentOS 7

不同版本的docker可能操作不一样,请根据实际情况操作。

核实docker版本方法:

# 1.查看 Docker 的系统信息:
sudo docker info

迁移docker默认路径

执行脚本

# 1. 停止 Docker 服务:
sudo systemctl stop docker
# 2.创建一个新的目录,用于存储 Docker 数据。例如,将数据存储在 /data/docker/data/:
sudo mkdir -p /data/docker/data/
# 3.将当前 /var/lib/docker 目录下的所有数据移动到新目录,修改权限是必须的。
sudo chmod -R 777 /data/docker/data/
# cp -a 可以复制文件的权限等相关属性,否则很容易因为权限无法启动
sudo cp -a /var/lib/docker/* /data/docker/data/
# 4.备份并修改 Docker 配置文件。默认情况下,Docker 使用 /etc/docker/daemon.json 配置文件。如果该文件不存在,请创建它。
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.backup
sudo vi /etc/docker/daemon.json
# 5.在 daemon.json 文件中,添加或修改 "data-root" 选项,以指向新的存储路径。例如:

{
  "data-root": "/data/docker/data/"
}

# 保存并关闭文件。

# 6.重新启动 Docker 服务:
sudo systemctl start docker
# 现在,Docker 应使用新的存储路径 /data/docker。请确保在启动容器和执行其他 Docker 操作时验证此更改。

如何验证是否迁移成功

要验证 Docker 是否使用了新的存储路径,您可以执行以下命令:

# 1.查看 Docker 的系统信息:
# 在输出的信息中,找到“Docker Root Dir”一项。它应该显示新的存储路径,例如 /data/docker/data/。

sudo docker info

# 2.运行一个简单的测试容器:
# 这将运行一个名为 hello-world 的简单 Docker 容器,然后将其删除。运行此命令的目的是确保 Docker 服务正常工作,以及新的存储路径可以用于创建和删除容器。

sudo docker run --rm hello-world

# 3.在新的存储路径中检查文件和文件夹:
# 此命令会列出/data/docker/data/ 目录中的所有文件和文件夹。如果一切正常,您应该看到 Docker 创建的各种文件夹,例如 overlay2、containers、volumes 等。

sudo ls -la /data/docker/data/

关于作者

来自一线全栈程序员nine的探索与实践,持续迭代中。

欢迎关注“雨林寻北”或添加个人卫星codetrend(备注技术)。

标签:存储,路径,sudo,磁盘空间,linux,Docker,data,docker
From: https://www.cnblogs.com/r0ad/p/18128026

相关文章

  • 使用docker部署基于selenium和chrome-headless的爬虫
    使用docker部署基于selenium和chrome-headless的爬虫无论是测试还是爬虫的一些工作,有时候都会用到selenium去对chrome执行自动化操作,这里介绍一下如何使用docker快捷方便的部署相关应用。1.selenium+chrome镜像通过dockersearchselenium我们发现,有一个docker镜像叫做sele......
  • linux 修复ntfs磁盘,安装和使用NTFSfix(安装Ntfs-3g),以在Linux上修复Windows硬盘驱动
    本文介绍在Linux系统中安装和使用NTFSfix(安装Ntfs-3g)的方法,支持Ubuntu、Debian、ArchLinux、Fedora、OpenSUSE,使用它可以在Linux上修复不工作的Windows硬盘驱动器。你是否有运行NTFS文件系统的dirtyWindows硬盘驱动器,遇到问题并且不想重新启动到Windows?如果是这样,别担心,使用......
  • 记录很久没用Ubuntu遇到的问题,并安装vulhub漏洞环境(Docker已装好)
    前景提要:之前有装过vulhub,但是今天想复现一下shiro反序列化漏洞(CVE-2016-4437),查看我下载的vulhub,没有找到。就打算更新(顺便提一嘴,更新命令为:gitpull,要先关闭docker),但是我一更新就VMware就弹出“对文件“……\VirtualMachines\Ubuntu64位\Ubuntu64位-000001.vmdk”的操作失......
  • Linux开发、运维常用命令个人心得总结
    1、lsls是“list”的缩写,。它是Linux系统中用于列出目录内容的标准命令。默认情况下,它会以简单的方式显示文件和目录的列表。-l:长格式显示。-a:显示所有文件,包括隐藏文件。2、cd用于改变当前工作目录的命令,cd命令后面通常跟着要切换到的目录的路径。cd..:返回上一级......
  • Docker常用命令个人学习心得
    Docker的常用命令涵盖了容器的创建、管理、镜像的下载与推送等多个方面。1、镜像管理dockerps:列出所有正在运行的容器。dockerps-a:显示所有的容器,包括未运行的。dockertag[现有镜像名]:[现有标签][新镜像名]:[新标签]:为现有的镜像创建一个新的标签。dockerrmi[image......
  • Linux驱动开发入门实验
    目录一、驱动模块的加载和卸载二、分配和释放设备号三、字符设备注册与注销四、实现设备的具体操作函数五、添加LICENSE和作者信息六、驱动程序完整代码七、编译驱动程序八、加载驱动模块一、驱动模块的加载和卸载Linux驱动有两种运行方式:第一种即是将驱动编译......
  • 如何在windows环境和linux环境运行jar包
    功能:实现对字符串小写转大写java代码如下:packagea_od_test;importjava.util.Locale;/*实现小写转大写打jar包分别在windows环境和liunx环境运行*/publicclassMain28_To_Upper{publicstaticvoidmain(String[]args){if(args.length==......
  • Linux的重要命令(一)
    目录一.查看当前的工作目录-pwd二.切换工作目录-cd三.列表显示目录内容或文件本身-ls四.通配符通配符用法五.设置别名-alias六.统计文件或目录空间占用情况七.创建新目录-mkdir八.创建新文件-touch九.创建链接文件-ln十.复制文件或目录十一.删除文件或目录-rm ......
  • 【Linux系统编程】libevent库事件驱动
    libevent库事件驱动libevent库使用创建并初始化event_base结构体。创建并初始化event结构体,并设置文件描述符、监听事件、回调函数、回调函数参数。将event添加到event_base中。开始事件处理循环,监听事件是否发生,并在满足条件时自动调用回调函数。事件处理完成后,释放event......
  • 在Linux终端查找指定类型的文件并统计数量
    下面举例说明:find/path/to/directory-typef-execfile{}\;|grep"MIDI"它的作用是在指定的目录(/path/to/directory)中搜索所有的文件(-typef),然后使用file命令检查每个文件的类型,并将结果通过管道传递给grep命令,用于过滤出包含"MIDI"关键词的文件信息。find:......