前言

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/*

修改docker的默认存储位置及镜像存储位置的更多相关文章

  1. Docker】如何修改Docker的默认镜像存储位置

    江湖有多大,坑就有多多……我使用的服务器, 系统盘根目录只有20G, 默认Docker 的镜像文件是安装在/var/lib/docker 目录下的, 这样的话我根本装不了太多的镜像,之前遇到一种情况就 ...

  2. 如何修改Docker的默认网段?

    背景 公司的服务器全部都是购买的阿里云ECS主机,默认内网网段为172.16.0.0/12,测试服上的服务基本都是使用Docker部署的. 之前的同事在该机器上安装的Docker全部都是默认配置,网段 ...

  3. 修改Docker容器默认时区

    运行docker容器默认时区为0区 # 运行一个nginx服务器 docker run -d -p 80:80 --name nginx nginx # 进入容器shell docker exec - ...

  4. 修改docker的默认存储位置

    service docker stop mv /var/lib/docker /mnt/docker ln -s /mnt/docker /var/lib/docker ls /var/lib/doc ...

  5. windows修改docker的默认存放位置

    docker默认存储到c盘,我需要移动到其他盘. 参考了网上很多资料,结果要么移动不了,要么重启docker就回到c盘了. 最后参考docker的官方论坛,找到了解决方案.https://forums ...

  6. 【Network】修改docker启动默认网桥docker0为自定义网桥

    自定义网桥 除了默认的 docker0 网桥,用户也可以指定网桥来连接各个容器. 在启动 Docker 服务的时候,使用 -b BRIDGE或--bridge=BRIDGE 来指定使用的网桥. 如果服 ...

  7. Hyperledger Fabric服务器配置及修改Docker容器卷宗存储根目录/位置

    Hyperledger Fabric节点服务器对存储空间的消耗还是比较大的,在我实际生产体验的过程中,每一条请求数据大概仅2K左右,但实际占用空间远不止这点,每个节点都会对Block及链进行保存维护, ...

  8. Docker镜像存储-overlayfs

    一.概述 Docker中的镜像采用分层构建设计,每个层可以称之为“layer”,这些layer被存放在了/var/lib/docker/<storage-driver>/目录下,这里的st ...

  9. docker (centOS 7) 使用笔记3 - 修改docker默认的虚拟网址

    近日在使用VPN时发现和docker的虚拟网址发生了冲突,都是172.17.0.1,故需要修改docker的默认网址. 1. 当前状态 # ifconfig docker0: flags=<UP ...

  10. 3、docker常用命令:help、镜像命令、容器命令

    1.帮助命令 1.docker version 2.docker info 3.重点掌握:docker --help 2.镜像命令 1.docker,镜像,容器关系 2.docker images ( ...

随机推荐

  1. fabric2.0开发 部署fabric环境和fabric-samples的启动(2)

    通过上一篇文章我们已经将fabric的基本环境搭建成功,接下来我们开始运行使用并初步认识fabric. 创建项目目录 mkdir -p ~/go/src/github.com/hyperledger ...

  2. 在 .NET Core 中使用 ActionBlock 实现高效率的多步骤数据处理

    目录 一.引言 二.ActionBlock介绍 什么是 ActionBlock? ActionBlock 的特点 ActionBlock 的使用场景 ActionBlock 的基本用法 三.假设场景 ...

  3. [转]Windows10+VS2013+OpenCV3.0开发环境搭建配置

    首先要说明一下:不管VS(Visual Studio)的版本是什么,也不管OpenCV的版本是什么,配置都大同小异.所以如果您希望在Window下配置OpenCV的开发环境,那么仔细阅读学习这篇文章即 ...

  4. 安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案

    安装OpenCV时,会遇到下面的错误 /home/zhang/slam/opencv-3.4.5/opencv_contrib/modules/xfeatures2d/src/boostdesc.cp ...

  5. 利用idea开发环境进行Spring Boot开发时maven同步更新jar依赖包时提示:sync:Cannot resolve xxx 的解决方案

    idea maven sync Cannot resolve xxx 的解决方案 经常会出现这种奇葩情况,提示找不到包 其实是因为网络波动或者突然断掉,导致包更新出现问题 直接去maven的仓库目录 ...

  6. 昔日移动端IM明星 “米聊” 即将停止服务

    2021年1月19日,小米旗下米聊宣布,将于2021年2月19日12点停止米聊的服务. 1.以下消息来自米聊官网   2.关于米聊 米聊是小米科技出品的一款免费即时通讯工具,推出时间为:2010年12 ...

  7. Ubuntu安装宝塔服务

    Linux面板7.9.4安装脚本 查看详细安装教程 使用 SSH 连接工具,如 堡塔SSH终端 连接到您的 Linux 服务器后, 挂载磁盘 ,根据系统执行相应命令开始安装(大约2分钟完成面板安装): ...

  8. 配置Ubuntu上的NFS

    $sudo apt-get install nfs-kernel-server nfs-common 配置 $sudo vim /etc/exports#添加#/home/pi/project/roo ...

  9. 中间件 vs 过滤器

    在 ASP.NET Core 中,中间件(Middleware) 和 过滤器(Filters) 是两种不同的机制,用于处理请求和响应的管道.它们的作用和适用场景有所不同,以下是它们的对比和详细说明: ...

  10. MyBatis中的 10 个宝藏技巧!

    前言 说到 MyBatis,很多小伙伴都会用,但未必用得"惊艳". 实际上,这个轻量级的持久层框架还有很多隐藏的"宝藏技巧". 如果你能掌握这些技巧,不但能让开 ...