Docker基础:变更docker缺省数据路径
2019-03-19 20:10
246 查看
版权声明:本文为博主原创文章,未经博主允许欢迎转载,但请注明出处。 https://blog.csdn.net/liumiaocn/article/details/88612156
使用Systemd方式启动docker服务之后,如果未做设定,docker缺省会将数据保存在/var/lib/docker,由于/var是系统目录,在实际机器的管理中往往只是给了一个很小的卷的大小,而实际docker在运行过程中产生的大量的卷的内容显然在这里保存会有问题,而发现问题的时候往往是因为将/var下面的空间占满或接近占满,这里简单介绍一下救火方法。
场景模拟和说明
- 当前docker的目录信息: /var/lib/docker
[appman@host118 ~]$ docker info |grep /var/lib Docker Root Dir: /var/lib/docker [appman@host118 ~]$
- 目标:移动到/opt/lib/docker,不影响目前的使用
设定选项
docker提供了-g选项(–graph的缩写),使用此选项可以进行设定docker 缺省的数据路径(Docker Root Dir)。
设定方式1
在systemd的service文件中直接添加-g /opt/lib/docker
设定方式2
修改/etc/docker/daemon.json,添加如下信息
{ “graph”: “/opt/lib/docker” }
变更示例
Step 1: 停止当前docker服务
[appman@host118 ~]$ systemctl stop docker ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: root Password: ==== AUTHENTICATION COMPLETE === [appman@host118 ~]$
Step 2: 创建并同步原有数据
- 确保新的路径用于保存数据
[appman@host118 ~]$ sudo mkdir -p /opt/lib/docker [sudo] password for appman: [appman@host118 ~]$ sudo ls /opt/lib/docker [appman@host118 ~]$
- 拷贝 (使用copy或者其他方式均可)
[appman@host118 ~]$ sudo rsync -a /var/lib/docker/ /opt/lib/docker [appman@host118 ~]$
Step 3: 设定路径并重启docker服务
- 设定路径
[appman@host118 ~]$ vi /etc/docker/daemon.json [appman@host118 ~]$ sudo vi /etc/docker/daemon.json [appman@host118 ~]$ sudo grep graph /etc/docker/daemon.json "graph": "/opt/lib/docker" [appman@host118 ~]$
- 重启docker服务
[appman@host118 ~]$ systemctl daemon-reload ==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon === Authentication is required to reload the systemd state. Authenticating as: root Password: ==== AUTHENTICATION COMPLETE === [appman@host118 ~]$ systemctl restart docker ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: root Password: ==== AUTHENTICATION COMPLETE === [appman@host118 ~]$
确认变更结果
- 确认变更后的Docker Root Dir信息
[appman@host118 ~]$ docker info |grep 'Docker Root' Docker Root Dir: /opt/lib/docker [appman@host118 ~]$
- 确认之前的镜像信息是否还存在
[appman@host118 ~]$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE alpine 3.9 caf27325b298 5 weeks ago 5.52 MB [appman@host118 ~]$
总结
头痛医头,脚痛医脚。我等江湖医生多为如此,而实际当然应该更好地进行整体的规划,确认一下事前可能会用到多少空间,不同发行版的linux下使用那种方式能更好的提高效率,外部的lvm如何设定,至少这些考虑一下之后,才是本文真正的解决之道。
相关文章推荐
- (大数据工程师学习路径)第一步 Linux 基础入门----简单的文本处理
- (大数据工程师学习路径)第四步 SQL基础课程----约束
- (大数据工程师学习路径)第四步 SQL基础课程----其他(基础练习到此为止)
- (大数据工程师学习路径)第一步 Linux 基础入门----文件打包与压缩
- (大数据工程师学习路径)第一步 Linux 基础入门----数据流重定向
- (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理
- Docker 基础 : 数据管理
- docker实战1 (docker-toolbox的安装,docker基础命令详解[运行,容器导入/导出,镜像导入/导出,数据卷,网络],构建100个docker实例的测试环境)
- Docker 基础(二) 安装ubuntu 和 镜像保存路径
- (大数据工程师学习路径)第四步 SQL基础课程----修改和删除
- docker学习系列二:数据管理和网络基础配置
- (大数据工程师学习路径)第四步 SQL基础课程----创建数据库并插入数据
- Docker基础教程(4)进阶命令-1-网络,数据卷等内容
- 浅谈Docker基础之数据管理
- (大数据工程师学习路径)第四步 SQL基础课程----SQL介绍及mysql的安装
- 数据结构基础温故-5.图(下):最短路径
- (大数据工程师学习路径)第一步 Linux 基础入门----文件系统操作与磁盘管理
- (大数据工程师学习路径)第四步 SQL基础课程----select详解
- 算法竞赛入门经典:第六章 数据结构基础 6.12迷宫路径