首页 > 其他分享 >修改docker的默认存储位置及镜像存储位置

修改docker的默认存储位置及镜像存储位置

时间:2024-09-11 19:02:46浏览次数:9  
标签:存储 lib 位置 目录 home Docker docker

前言

Docker 默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等。

不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了后就容易出问题,这里说明一下如何修改 Docker 的默认存储目录。

一、查看当前docker的默认存储目录

docker info

# docker 存储目录
Docker Root Dir: /var/lib/docker

二、停止docker服务

systemctl stop docker

三、目录迁移

创建新的 docker 目录,执行命令 df -h,找一个大的磁盘。

我在 /home 目录下面建了 /home/docker 目录,执行的命令是:

mkdir -p /home/docker

迁移 /var/lib/docker 目录下面的文件到 /home/docker

# 和cp类似,只不过是会自动过滤,目标目录有的文件不会重新拷贝
rsync -avz /var/lib/docker /home/docker    

四、编辑/etc/docker/daemon.json文件

vim /etc/docker/daemon.json

默认情况下这个配置文件是没有的,可以新建一个,然后写入以下内容:

{
  "graph": "/home/docker"
}

取决于具体的 ubuntu 版本或者 kernel 版本决定要用 data-root 还是 graph

  • Docker 17.05 及以后的版本使用 "data-root"。
  • 旧版本可能使用 "graph",但建议升级到新版本。

在较新的 Docker 版本中,应该使用 "data-root" 配置项,而不是 "graph"。 "data-root或者graph": "/home/docker"

五、保存退出,然后重启 docker 服务

# reload配置文件
systemctl daemon-reload

# 重启docker
systemctl restart docker

如果 docker 启动失败,查看失败原因

systemctl status docker

journalctl -u docker.service

sudo journalctl -u docker --no-pager

六、检查docker存储路径是否配置成功

docker info | grep "Docker Root Dir"

Docker Root Dir: /home/docker

如果修改失败,可以检查 Docker 服务启动参数:

查看 Docker 服务的启动参数,确保没有在命令行中指定 data-root

可以查看 /lib/systemd/system/docker.service/etc/systemd/system/docker.service.d/ 下的文件,看看是否有相关配置:

vim /etc/systemd/system/docker.service.d/docker-options.conf

自己手动配置 data-root

然后重启 docker,查看是否成功。

七、启动成功后,再确认之前的镜像还在

docker ps -a
docker images

八、确定容器、镜像没问题后,删除/var/lib/docker/目录中的文件。

rm -rf /var/lib/docker/*

标签:存储,lib,位置,目录,home,Docker,docker
From: https://www.cnblogs.com/niuben/p/18408749

相关文章

  • Docker部署kubepi,并使用cloudflare配置https
    使用cloudflare配置https用docker部署kubepi,并且使用cloudflare开启https零、前情提要准备一台国外服务器(国内服务器也可,但是要备案)雨云服务器购买地址,这个比较便宜,我是自用然后1块钱买了一天试用做测试的,如果大家只是想学习一下的话可以注册1块钱买一天的,试用一下,而......
  • 一招搞定QNAP Docker备份难题!实用技巧分享
    想必大家也会偶遇到由于意外断电或硬盘故障,导致系统卷损坏,亦或是想更换成SSD系统盘。导致不得不移除重建磁盘区重新安装所有应用,qnap自带的应用到还好没什么,主要是docker的设置太麻烦,而且时间长也忘记之前设置的配置和参数了。因此docker定期的导出就显得至关重要了。以下使......
  • docker启动失败
    【问题】docker启动失败提示Jobfordocker.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusdocker.service"and"journalctl-xe"fordetails.【原因】因服务器停电,导致Docker的主进程(即Dockerdaemon)在启动过程中遇到了无法......
  • 软件测试学习笔记丨Docker 安装、管理、搭建服务
    本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32192容器(Docker)技术的价值保证环境一致性,只要使用相同镜像部署就可以保证一致性。轻量级虚拟化访问,运行更快,资源更小。同时也可以荣期间的隔离性。封装部署的负载型,云原生与微服务的首选技术方案。未来测试人员必学的技术......
  • 上汽大众:存储成本节约85%,查询性能提升5倍|OceanBase案例
    近日,上汽大众汽车有限公司(简称“上汽大众”)的积分卡券等关键业务系统,已成功升级至OBCloud云数据库。借助OceanBase原生分布式数据库的卓越性能与先进技术,实现了存储成本的大幅降低,高达85%;同时,业务连续性显著提升,达到了99.999%;查询效率更是飞跃,性能提升5倍。这一系列改进,标......
  • Dockerfile说明-镜像最小化-docker-squash镜像压缩工具
     概述很多时候,构建的镜像总是在构建完之后分了好几个镜像层,有些镜像层还是因为只改变了一点东西,就多了整个目录的大小。那么,如何让镜像在构建的时候保持最小化,就是我们运维需要关心的问题。毕竟,有时候镜像太大,可能会被某些厂家的云仓库给限制上传的问题。 Dockerfile用法介......
  • C语言的数据在内存中的存储
    在之前的二进制及其相关操作符与结构体内存对齐两篇文章中,我们已经对二进制数,原码反码补码进行了浅层的了解,并且也知道了高低地址以及高低字节的区别,那么既然知道了这些基础知识,就让我们借助这一层台阶,继续往更高的地方(数据在内存中的存储)大迈步吧~一、二进制数日常生活中......
  • 存储虚拟化2
    1.集群文件系统VIMS背景1.生产环境下如果主机是windows操作系统,使用的NTFS文件系统,那就不允许使用同一个LUN映射给多个windows操作系统主机(解决这个问题就需要VIMS)2.FusionCompute对接存储2.1配置业务口ip/lun/lun组/主机/主机组/映射视图做对接FC实验的时候,FC要求对接的L......
  • 【大数据】分布式存储压缩算法
    目录一、分布式存储压缩算法概述二、分布式存储压缩算法优缺点和改进2.1 分布式存储压缩算法优点2.2分布式存储压缩算法缺点2.3 分布式存储压缩算法改进三、分布式存储压缩算法实现3.1 分布式存储压缩算法C语言实现3.2 分布式存储压缩算法JAVA实现3.3 分布式存......
  • C语言:数据在内存中的存储
    一.整数在内存中的存储首先,在讲解操作符的时候,我们就已经知道了,对于整形来说:数据存放内存中其实存放的是补码。并且我们也知道补码是整数的2进制表示方法之一。整数的2进制表示方法有三种,即原码、反码和补码有符号的整数,三种表示方法均有符号位和数值位两部分,符号位都是用......