docker日志默认存放在/var目录下,但有的使用场景中,根目录空间很小,很容易使磁盘空间达到100%
1.在刚搭建docker环境时
刚开始搭建docker环境时,启动docker服务,此时还没有运行容器时,可以直接更改存储路径
1.1.查看docker的存储路径
docker info
或
docker info | grep "Docker Root Dir"
查看磁盘空间,找到需要挂载的目录,如下:将路径更改为/data目录下
1.2.停止docker
systemctl stop docker
1.3.在/data目录下创建存储目录
mkdir -p /data/lib/docker
1.4.更改service文件配置
即ExecStart后加上“–graph=/data/lib/docker”
vim /usr/lib/systemd/system/docker.service
1.5.reload配置后,重启docker
systemctl daemon-reload
systemctl restart docker
确认日志存储路径是否更改
docker info | grep "Docker Root Dir"
2.已运行大量容器
如果已经运行大量容器,此时需要将数据复制到目标目录
2.1.停止docker服务
systemctl stop docker
2.2.复制数据
将整个/var/lib/docker目录拷到数据盘的目的路径
rsync -avzP /var/lib/docker /data/lib
参数解析:
-a,归档模式,表示递归传输并保持文件属性。
-v,显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
-P,显示文件传输的进度信息。(实际上"-P"=“–partial --progress”,其中的"–progress"才是显示进度信息的)。
-z, 传输时进行压缩提高效率。
2.3.更改service文件配置
即ExecStart后加上“–graph=/data/lib/docker”
vim /usr/lib/systemd/system/docker.service
2.4.reload配置后,重启docker
systemctl daemon-reload
systemctl restart docker
3.使用软链接,不修改service配置
停止docker后,将/var/lib下的docker目录,移动到/data/lib目下
在/var/lib下创建软链
ln -s /data/lib/docker /var/lib/
再重启docker