Docker存储目录问题,如何修改Docker默认存储位置?(Docker存储路径、Docker存储空间)etc/docker/daemon.json

文章目录

  • 如何更改docker默认存储路径?
    • 版本1(没测试)
    • 版本2(可行)
      • 1. 停止 Docker 服务:
      • 2. 创建新的存储目录:
      • 3. 修改 Docker 配置文件:
      • 4. 移动现有的 Docker 数据:
      • 5. 重新启动 Docker 服务:
      • 6. 验证修改
      • 7. 真实验证(记录各时间点和存储占用)
        • Thu 11 Jul 2024 01:33:57 PM CST(`/`Available 27445M)
        • Thu 11 Jul 2024 04:04:38 PM CST(`/`Available 27444M)
        • Fri 12 Jul 2024 01:51:59 PM CST(`/`Available 27444M)
  • 为什么存在以上两种修改方法,有何异同?(修改`etc/systemd/system/docker.service.d/override.conf`和修改`etc/docker/daemon.json` )

如何更改docker默认存储路径?

版本1(没测试)

默认情况下,Docker 在 Linux 上安装时会将其数据(如镜像和容器)存储在 /var/lib/docker 目录下,这个目录通常位于根分区 /。如果你的根分区 / 的空间不足,你可以考虑将 Docker 的数据目录移动到其他分区,或者在安装 Docker 时直接配置它使用其他分区。

要更改 Docker 的默认存储位置,你可以通过修改 Docker 的配置文件或在启动 Docker 服务时设置环境变量来指定新的数据目录。下面是一些步骤说明如何进行配置:

  1. 停止 Docker 服务:

    sudo systemctl stop docker
    

    在这里插入图片描述

  2. 修改 Docker 配置文件(如果你使用的是 systemd):

    • 打开或创建 Docker 的 systemd 配置文件(一开始没有这个文件是正常的):
      sudo vi /etc/systemd/system/docker.service.d/override.conf
      
    • 添加以下内容来指定新的数据目录,假设你想将数据存储在 /mnt/docker/
      [Service]
      ExecStart=
      ExecStart=/usr/bin/dockerd --data-root /mnt/docker -H fd:// --containerd=/run/containerd/containerd.sock
      
    • 保存并关闭文件。
  3. 重新加载 systemd 配置并重新启动 Docker 服务:

    sudo systemctl daemon-reload
    sudo systemctl start docker
    
  4. 检查 Docker 是否使用新的数据目录:

    docker info | grep "Docker Root Dir"
    

确保新的数据目录所在的分区有足够的空间,以避免在使用 Docker 时遇到空间不足的问题。

版本2(可行)

要修改 Docker 的存储路径至 /data/docker,您可以按照以下步骤操作:

1. 停止 Docker 服务:

打开终端,使用以下命令停止 Docker 服务:

sudo systemctl stop docker.socket
sudo systemctl stop docker

一开始只执行一条停不了:
在这里插入图片描述
在这里插入图片描述
后面两条执行就能停了:

在这里插入图片描述

2. 创建新的存储目录:

如果 /data/docker 目录还不存在,使用以下命令创建它:

sudo mkdir -p /data/docker

3. 修改 Docker 配置文件:

编辑 Docker 的 daemon 配置文件 /etc/docker/daemon.json。如果该文件不存在,您需要创建它。

sudo vi /etc/docker/daemon.json

在文件中添加或修改以下内容:

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

保存并关闭文件。

4. 移动现有的 Docker 数据:

如果您的 Docker 安装中已经有数据,并且您希望保留这些数据,可以将现有的数据移动到新的目录:

sudo rsync -aP /var/lib/docker/ /data/docker

在这里插入图片描述

5. 重新启动 Docker 服务:

使用以下命令重新启动 Docker 服务:

sudo systemctl start docker.socket
sudo systemctl start docker

6. 验证修改

检查 Docker 是否正确使用新的存储路径,可以查看 Docker 信息:

docker info | grep 'Docker Root Dir'

在这里插入图片描述

现在 Docker 已经成功地使用 /data/docker 作为其根目录了。至于您看到的警告信息 “WARNING: No swap limit support”,这是一个常见的信息,指的是您的 Linux 系统上没有启用内存交换限制的支持。

在 Docker 中,这种警告通常不会影响 Docker 容器的正常运行,它只意味着 Docker 无法强制限制容器的交换内存使用量。这通常与 Linux 内核的某些配置有关,特别是 cgroup 的配置。

注意:如果不放心,可以执行mv /var/lib/docker /var/lib/docker_old备份检测下

7. 真实验证(记录各时间点和存储占用)

通过使用一下两条命令:

date
df -BM
Thu 11 Jul 2024 01:33:57 PM CST(/Available 27445M)
root@ai-video-ecs-01:/userdata/tmp# date
Thu 11 Jul 2024 01:33:57 PM CST
root@ai-video-ecs-01:/userdata/tmp#
root@ai-video-ecs-01:/userdata/tmp#
root@ai-video-ecs-01:/userdata/tmp# df -BM
Filesystem                        1M-blocks  Used Available Use% Mounted on
udev                                 32078M    0M    32078M   0% /dev
tmpfs                                 6425M    4M     6422M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv    38122M 8911M    27445M  25% /
tmpfs                                32124M    0M    32124M   0% /dev/shm
tmpfs                                    5M    0M        5M   0% /run/lock
tmpfs                                32124M    0M    32124M   0% /sys/fs/cgroup
/dev/loop1                              64M   64M        0M 100% /snap/core20/2318
/dev/loop0                              64M   64M        0M 100% /snap/core20/1828
/dev/loop2                              50M   50M        0M 100% /snap/snapd/18357
/dev/loop3                              39M   39M        0M 100% /snap/snapd/21759
/dev/vda2                             1946M  109M     1719M   6% /boot
/dev/loop4                              92M   92M        0M 100% /snap/lxd/24061
/dev/sda1                           749867M 4140M   707565M   1% /ky
/dev/sda2                          9401234M 2884M  8924482M   1% /data
tmpfs                                 6425M    0M     6425M   0% /run/user/1000
overlay                            9401234M 2884M  8924482M   1% /data/docker/overlay2/c385332babdae4ee85601ffa1dd1ebe6c36fc1f618389ace09b2051731d5fa8c/merged
overlay                            9401234M 2884M  8924482M   1% /data/docker/overlay2/31a24b6f39c2ea25d700754b5c9ea78574e772589690437fd60e4b60fac15c0c/merged
overlay                            9401234M 2884M  8924482M   1% /data/docker/overlay2/88149e56439d9bad5b2b785f12ff77b6052c5ba369f53f9e12a38698c34615ce/merged
overlay                            9401234M 2884M  8924482M   1% /data/docker/overlay2/b2171ae8eaa2b4b6bf61de50165b2e885f6e2d4373d02fd1e492cc1d2158bd9b/merged
overlay                            9401234M 2884M  8924482M   1% /data/docker/overlay2/3e9af67e01934706a6712e2a6601292b105c26d5fecf82218f8d7ef65ca30b3d/merged
overlay                            9401234M 2884M  8924482M   1% /data/docker/overlay2/341e8bc8f48a17d24ee4005c45cda9e121bececd2b0fea5463b337acbce64f04/merged
overlay                            9401234M 2884M  8924482M   1% /data/docker/overlay2/6ee97fa0e1597535d0d70be41d5a3220c6f58ff033dba5388a53034afbeb8f5f/merged
root@ai-video-ecs-01:/userdata/tmp#
Thu 11 Jul 2024 04:04:38 PM CST(/Available 27444M)
hw@ai-video-ecs-01:~$ date
Thu 11 Jul 2024 04:04:38 PM CST
hw@ai-video-ecs-01:~$
hw@ai-video-ecs-01:~$ df -BM
Filesystem                        1M-blocks  Used Available Use% Mounted on
udev                                 32078M    0M    32078M   0% /dev
tmpfs                                 6425M    4M     6422M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv    38122M 8911M    27444M  25% /
tmpfs                                32124M    0M    32124M   0% /dev/shm
tmpfs                                    5M    0M        5M   0% /run/lock
tmpfs                                32124M    0M    32124M   0% /sys/fs/cgroup
/dev/loop1                              64M   64M        0M 100% /snap/core20/2318
/dev/loop0                              64M   64M        0M 100% /snap/core20/1828
/dev/loop2                              50M   50M        0M 100% /snap/snapd/18357
/dev/loop3                              39M   39M        0M 100% /snap/snapd/21759
/dev/vda2                             1946M  109M     1719M   6% /boot
/dev/loop4                              92M   92M        0M 100% /snap/lxd/24061
/dev/sda1                           749867M 4141M   707564M   1% /ky
/dev/sda2                          9401234M 2886M  8924479M   1% /data
tmpfs                                 6425M    0M     6425M   0% /run/user/1000
Fri 12 Jul 2024 01:51:59 PM CST(/Available 27444M)
root@ai-video-ecs-01:/userdata/tmp# date
Fri 12 Jul 2024 01:51:59 PM CST
root@ai-video-ecs-01:/userdata/tmp#
root@ai-video-ecs-01:/userdata/tmp# df -BM
Filesystem                        1M-blocks  Used Available Use% Mounted on
udev                                 32078M    0M    32078M   0% /dev
tmpfs                                 6425M    4M     6422M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv    38122M 8911M    27444M  25% /
tmpfs                                32124M    0M    32124M   0% /dev/shm
tmpfs                                    5M    0M        5M   0% /run/lock
tmpfs                                32124M    0M    32124M   0% /sys/fs/cgroup
/dev/loop1                              64M   64M        0M 100% /snap/core20/2318
/dev/loop0                              64M   64M        0M 100% /snap/core20/1828
/dev/loop2                              50M   50M        0M 100% /snap/snapd/18357
/dev/loop3                              39M   39M        0M 100% /snap/snapd/21759
/dev/vda2                             1946M  109M     1719M   6% /boot
/dev/loop4                              92M   92M        0M 100% /snap/lxd/24061
/dev/sda1                           749867M 4154M   707550M   1% /ky
/dev/sda2                          9401234M 2903M  8924463M   1% /data
tmpfs                                 6425M    0M     6425M   0% /run/user/1000
overlay                            9401234M 2903M  8924463M   1% /data/docker/overlay2/c385332babdae4ee85601ffa1dd1ebe6c36fc1f618389ace09b2051731d5fa8c/merged
overlay                            9401234M 2903M  8924463M   1% /data/docker/overlay2/31a24b6f39c2ea25d700754b5c9ea78574e772589690437fd60e4b60fac15c0c/merged
overlay                            9401234M 2903M  8924463M   1% /data/docker/overlay2/88149e56439d9bad5b2b785f12ff77b6052c5ba369f53f9e12a38698c34615ce/merged
overlay                            9401234M 2903M  8924463M   1% /data/docker/overlay2/b2171ae8eaa2b4b6bf61de50165b2e885f6e2d4373d02fd1e492cc1d2158bd9b/merged
overlay                            9401234M 2903M  8924463M   1% /data/docker/overlay2/3e9af67e01934706a6712e2a6601292b105c26d5fecf82218f8d7ef65ca30b3d/merged
overlay                            9401234M 2903M  8924463M   1% /data/docker/overlay2/341e8bc8f48a17d24ee4005c45cda9e121bececd2b0fea5463b337acbce64f04/merged
overlay                            9401234M 2903M  8924463M   1% /data/docker/overlay2/6ee97fa0e1597535d0d70be41d5a3220c6f58ff033dba5388a53034afbeb8f5f/merged
root@ai-video-ecs-01:/userdata/tmp#

为什么存在以上两种修改方法,有何异同?(修改etc/systemd/system/docker.service.d/override.conf和修改etc/docker/daemon.json

在修改 Docker 的存储位置时,可以通过修改 etc/docker/daemon.jsonetc/systemd/system/docker.service.d/override.conf 来实现,两种方式都是正确的,但它们有不同的用途和适用情况:

  1. 修改 /etc/docker/daemon.json

    • 这种方法通过 Docker 的配置文件来设置 Docker 的默认行为,包括存储位置、日志级别、网络配置等。
    • 要修改存储位置,你可以在 daemon.json 文件中设置 data-root 属性,指向新的存储路径。例如:
      {"data-root": "/new/path/to/docker-data"
      }
      
    • 这种方法的优点是配置简单,且直接通过 Docker 自己的配置文件进行管理,易于理解和维护。
  2. 修改 /etc/systemd/system/docker.service.d/override.conf

    • 这种方法适用于在使用 systemd 管理 Docker 服务的系统上。通过 systemd 的配置覆盖文件来修改 Docker 服务的启动参数。
    • 你可以通过创建或修改 override.conf 文件,添加一个新的 ExecStart 行,指定新的存储位置。例如:
      [Service]
      ExecStart=
      ExecStart=/usr/bin/dockerd --data-root /new/path/to/docker-data
      
    • 注意,需要先清空原有的 ExecStart 设置(ExecStart=),然后重新定义。这样可以确保使用你的自定义设置启动 Docker。
    • 这种方法允许你对 Docker 的启动过程进行更细粒度的控制,但相对复杂,需要对 systemd 的配置有一定了解。

总结:选择哪种方法取决于你的具体需求和你对系统的控制级别。如果你希望通过 Docker 自身的配置来管理,使用 daemon.json 是更直接的方法。如果你需要更复杂的配置或者想要控制服务的启动参数,使用 systemd 的 override.conf 方法会更合适。

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

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

相关文章

Java-svg格式的oss图片链接转换为png格式图片字节流

一、引入依赖 <!--svg转其他格式依赖--> <dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-transcoder</artifactId><version>1.14</version> </dependency> <dependency><groupId&g…

什么样的服务器是合乎直销网站标准

现在社会的发展,有着越来越多的人想要利用互联网来做直销。做好直销行业系统解决方案离不开好的服务器支持,服务器的的稳定性和速度是直接影响网站后期运作,可以看做是网站的根基。 做网站直销选择租用服务器需要注意的几点要素 一些大的直销互联网公司如安利、雅芳、康宝莱、玫…

【人工智能】自然语言处理(NLP)的突破,关注NLP在机器翻译、情感分析、聊天机器人等方面的最新研究成果和应用案例。

自然语言处理&#xff08;NLP&#xff09;作为人工智能的一个重要分支&#xff0c;近年来取得了显著的突破&#xff0c;特别在机器翻译、情感分析、聊天机器人等领域取得了显著的研究成果和广泛的应用。以下是对这些领域最新研究成果和应用案例的概述&#xff0c;并附带相应的代…

域名解析记录与服务器源IP的探索

在互联网中&#xff0c;域名和IP地址是进行网络通信的基础。用户通常通过域名来访问网站或服务&#xff0c;而实际的数据交换则发生在IP地址之间。域名解析&#xff08;DNS解析&#xff09;是将易于记忆的域名转换为计算机可识别的IP地址的过程。本文将探讨如何通过域名解析记录…

Uniapp自定义动态加载组件(2024.7更新)

1.本次介绍如何使用uniapp实现自定义动态加载Loading的组件&#xff0c;可以gif格式&#xff0c;也可以mp4格式等; 编写自定义Loading组件(CustomLoader.vue)&#xff1b;组件中含有“动态接收图片路径”&#xff0c;“10秒超时未false则自动断开关闭Loading”&#xff1b;在全…

【JavaScript 算法】广度优先搜索:层层推进的搜索策略

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理二、算法实现三、应用场景四、优化与扩展五、总结 广度优先搜索&#xff08;Breadth-First Search, BFS&#xff09;是一种用于遍历或搜索图或树数据结构的算法。该算法从起始节点开始&#xff0c;逐层向外扩展…

小程序-2(WXML数据模板+WXSS模板样式+网络数据请求)

目录 1.WXML数据模板 数据绑定 事件绑定 小程序中常用的事件 事件对象的属性列表 target和currentTarget的区别 bindtap的语法格式 在事件处理事件中为data中的数据赋值 事件传参与数据同步 事件传参 bindinput的语法绑定事件 文本框和data的数据同步 条件渲染 w…

《向量数据库指南》——使用 Grafana 和 Loki 搭建 Milvus Cloud日志查询系统

本教程将介绍如何设置 Grafana 和 Loki 来有效监控您的 Milvus Cloud实例。 Milvus Cloud是一款分布式向量数据库,可高效存储、索引和管理万亿级 Embedding 向量,是搭建 AI 和 ML 应用的首选向量数据库系统。 Grafana 是一个开源的指标监控平台,提供可视化的指标和日志…

5,SSH 端口转发

SSH 端口转发 简介 SSH 除了登录服务器&#xff0c;还有一大用途&#xff0c;就是作为加密通信的中介&#xff0c;充当两台服务器之间的通信加密跳板&#xff0c;使得原本不加密的通信变成加密通信。这个功能称为端口转发&#xff08;port forwarding&#xff09;&#xff0c…

SpringCloud | 单体商城项目拆分(微服务)

为什么要进行微服务拆分&#xff1f; 在平常的商城项目中&#xff0c;我们一般的项目结构模块都是将各种业务放在同一个项目文件夹&#xff0c;比如像&#xff1a; 用户&#xff0c;购物车&#xff0c;商品&#xff0c;订单&#xff0c;支付等业务都是放在一起&#xff0c;这样…

thinkphp:数据库多条件查询

一、使用if条件限制查询条件 $query Db::table(wip_operation_plan)->alias(d)->join([wip_jobs_all > a], a.wip_entity_name d.wip_entity_name)->join([sf_item_no > c], a.primary_itemc.item_no)->field(d.*,c.item_no as item_no,c.item_name as i…

线上观看 3 万+!「智能运维MeetUp」精彩回顾,探讨智能体构建新方向

龙蜥社区“走进系列”第 11 期走进中兴通讯-智能可观测运维技术 MeetUp 于成都圆满结束&#xff0c;由中兴通讯联合龙蜥社区系统运维联盟&#xff08;SOMA&#xff09;&#xff08;以下简称“联盟”&#xff09;共同举办。本次活动现场汇聚了阿里云、谐云科技、乘云数字、中兴通…

MySQL数据库day7.11

一&#xff0c;SQL概述 1.1 SQL语句语法 MySQL 数据库的 SQL 语句不区分大小写&#xff0c;关键字建议使用大写&#xff0c; 以分号结尾。例如&#xff1a; SELECT * FROM user; 使用 /**/ 、 -- 、 # 的方式完成注释 /* 多行注释 */ -- 单行注释 # 单行注释 SELECT * FRO…

vue2 ant-design select组件自定义下拉框, dropdownRender 使用,以及遇到的坑

业务需求&#xff1a;下拉框需要满足用户可输入筛选 和 点击右侧 字符按钮 #A-Z进行用户选择 1、基础页面代码 <div><a-selectstyle"width: 100%"placeholder"请选择客户"allow-clearshow-search:filter-option"false":not-found-con…

计算机硬件---如何更新自己电脑的BLOS

1找官网 例如“我使用的是HP&#xff08;惠普&#xff09;品牌的电脑”我只需要在浏览器上搜索“惠普官网”或“惠普-blos更新” 就可以看到&#xff0c;来自官网中更新blos的信息 2.有些品牌要查序列号该怎么办呢&#xff1f; 有许多方法可以查询&#xff0c;例如&#xf…

android13 frameworks里面常用的保存信息或者版本判断的方法

总纲 android13 rom 开发总纲说明 目录 1.前言 2. 数据库 2.1 代码读取用法参考 3.prop 属性配置 3.1 property的key值有哪些特点 4.区别 5. 其他数据存储 6.彩蛋 1.前言 frameworks 不像我们一般开发app那样,很多应用保存的方法都无法使用。这里记录我们系统rom开…

Java性能优化-if-else简化技巧

场景 Java性能优化-switch-case和if-else速度性能对比&#xff0c;到底谁快&#xff1f;&#xff1a; Java性能优化-switch-case和if-else速度性能对比&#xff0c;到底谁快&#xff1f;-CSDN博客 如果单纯是做情景选择&#xff0c;建议使用switch&#xff0c;如果必须使用i…

关于java的反射

❓❓❓反射是啥呀相信许多学java的同学非常困惑在学的时候&#xff0c;总是感觉懂了却又没懂或者直接忽略过去了&#xff0c;那么本文就带大家探讨一下什么是反射在java中以及它的机制和运用。 ⭐️什么是反射&#xff1a; 首先我们知道一些知识&#xff1a; 维基百科的解释 …

武汉市集成电路领域重点产业链研究咨询服务机构申报条件、时间

武汉市集成电路领域重点产业链研究咨询服务机构公开遴选有关内容如下&#xff0c;武汉市的企业单位可以了解一下 一、采购内容 &#xff08;一&#xff09;项目名称 武汉市集成电路领域重点产业链研究咨询服务项目。 &#xff08;二&#xff09;项目内容 为进一步推动我市…

springboot项目 导入 maven坐标 错误 Could not transfer artifact XXX

1.报错原因 当时导入的是 redis坐标 &#xff0c;导入jar 包报错&#xff08;当时是网速太慢了&#xff0c;一直卡着不动 就关了 idea 重新下载&#xff09;结果报错 之前的redis 项目都可以的&#xff0c;网上找了一下 都没解决 2.解决办法 既然说不能传输&#xff0c; 就说…