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

news/2024/9/18 3:49:33/文章来源:https://www.cnblogs.com/niuben/p/18408749

前言

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 dockerjournalctl -u docker.servicesudo 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/*

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/795597.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于sqli-labs Less-1的sql注入原理详细讲解

SQLi Labs 是一个专为学习和测试 SQL 注入漏洞而设计的实验室平台。它旨在帮助安全研究人员、开发者以及网络安全爱好者深入理解和实践各种 SQL 注入攻击。SQLi Labs 提供了一系列精心设计的实验室环境和挑战,模拟真实的 SQL 注入漏洞,并提供相应的解决方案。 关于sqli-labs靶…

UE4(5)逆向学习笔记(三)——UEDumper源码学习

目录0.前言1.准备2.开始阅读2.1 设置版本和Offset2.2 获取GName2.3 使用GName2.4 获取GUObjectArray2.5 使用GUObjectArray2.6 寻找dump主流程2.6.1 ObjectsManager::copyGObjectPtrs2.6.2 ObjectsManager::copyUBigObjects2.6.3 EngineCore::cacheFNames2.6.4 Engin…

k8s dashboard token 生成/获取

创建示例用户在本指南中,我们将了解如何使用 Kubernetes 的服务帐户机制创建新用户、授予该用户管理员权限并使用与该用户绑定的承载令牌登录仪表板。 对于以下每个和的代码片段ServiceAccount,ClusterRoleBinding您都应该将它们复制到新的清单文件(如)中,dashboard-admin…

个人项目

这个作业属于哪个课程 计科22级12班这个作业要求在哪里 作业要求 这个作业的目标 完成个人项目,实现论文查重的功能,了解软件开发流程Github链接 一.PSP表格PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)Planning 计划 15 20Estimate 估计这个任务…

互联网医疗|基于音视频SDK和即时通讯IM技术实现线上问诊功能

不论是科普医学知识,还是医疗行业者的专业培训、手术示教,采用远程直播培训的方式能够打破空间限制,同时也保留了课堂的互动性,大大节省了讲师和学员的成本。帮助开发者全面监测音视频服务,包括问题定位诊断、洞察质量与体验、业务经营分析、实时监控告警等,低门槛、高效…

Spring boot 2.x validator

1、使用方式 2、常用注解

DBeaver 连接 mysql 报错:Public Key Retrieval is not allowed

前言 DBeaver 连接 mysql 报错:Public Key Retrieval is not allowed 遇到 "Public Key Retrieval is not allowed" 错误时,通常意味着你正在使用的身份验证方法需要加密连接,但是没有正确地配置客户端或服务器来支持这种加密。 解决 第一种 可以在连接字符串中添…

Rest-assured框架详解

Rest-assured框架官网 官网url: https://rest-assured.io/ 一、接口测试介绍 - 什么是接口测试 本质上基于某种协议,发送请求给服务器,服务器返回响应数据,对响应数据进行分析,判断和我们的预期是否一致,从而验证功能是否正确。 - 为什么做接口测试 更早发现问题,降低研…

Google Play中无法更新Chrome和Android System Webiew的解决办法

【1】去https://apkpure.com/下载安装最新的Apkpure;【2】打开Apkpure,搜索Google Play,然后更新到最新版本;【3】重新打开Google Play,点自己头像,打开管理应用和设备,你会发现已经不需要更新Android System Webiew了,并且此时可以搜索任何APP进行安装,包括之前极难更…

Consul Windows部署

一、Consul下载 下载地址:Install | Consul | HashiCorp Developer 本次使用Windows版本下载解压后,可看到consul.exe文件二、Consul Server配置 为了方便使用增加server-config.hcl和server-start.bat文件(一) server-config.hcl配置文件 # 节点名称 node_name = "my-c…

国产化:部署单机THS(东方通TongHttpServer替代Nginx)

背景 国产化要求,使用东方通 TongHttpServer 替代 Nginx 。1 安装THS 解压之后把授权文件 license.dat 放到主目录下即可。 tar zxvf TongHttpServer_6.0.0.2_x86_64.tar.gz2 启动主程序 如果以 root 用户启动 THS 时,worker 进程会切换到 nobody 用户 nobody 组运行。所以确…