背景:
公司一体机服务器上运行着大量容器、镜像,可装系统磁盘分区的时候又没给系统根目录分太大的空间,导致磁盘空间经常被占满。所以决定把docker的存储目录更换到新的挂载点
查看整体磁盘使用情况及docker 磁盘使用情况
# 查看磁盘占用情况
# df -h
# 查看docker磁盘占用情况
# docker system df
如图:
清理磁盘
# 命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及无tag的镜像,此处有些帖子会加-a参数,-a参数会将本地尚未使用的镜像干掉,慎用
# docker system prune
如图:
停止docker服务
# systemctl stop docker
# 这里大多数帖子都没有提到,docker会有守护进程docker.socket运行,停了docker服务后,如果还有docker命令输入,docker服务会被自动唤醒,我们只需要将docker.socker服务也停掉就好
# systemctl stop docker.socket
# 之后查看docker服务状态
# systemctl status docker
如图:
迁移数据目录
# 通过yum安装的docker,默认数据路径都是/var/lib/docker,此处从默认目录迁移到/home/docker/lib目录下,目标路径不存在则需手动创建
# rsync -avz /var/lib/docker /home/docker/lib/
# 之后就开始迁移了,迁移速度取决于你原本数据目录的大小
如图:
重新查看磁盘占用
# df -h
如图:
发现已经迁移成功
修改docker启动文件
# 通过yum安装的docker,配置文件路径/usr/lib/systemd/system/docker.service
# vim /usr/lib/systemd/system/docker.service
# 在ExecStart=/usr/bin/dockerd后添加--graph /home/docker/lib/docker
如图:
重新更新一下docker服务
# 取消开机自启
# systemctl disable docker
# 设置开机自启
# systemctl enable docker
# 刷新启动配置
# systemctl daemon-reload
# 重启docker
# systemctl start docker
# 查看docker信息
# docker info
如图:
可以看到已经更换成功,之后可以执行docker images查看之前的镜像是否还存在,至此结束
暂无评论