Docker 修改容器日志默认存储路径
默认安装完成 docker 后,所有 images 及相关信息存储位置为:/var/lib/docker,比如每个容器的日志默认都会以 json-file
的格式存储于 /var/lib/docker/containers/<容器id>/<容器id>-json.log
里面。
一般情况,/var 目录是在根分区之下,而根分区之下的磁盘空间一般不会较大,所以在生产环境中,经常会因为这个原因导致磁盘空间不足,然后服务或者消息中间件之类的崩掉。
修改 /var/lib/docker 的存储路径:
一、查看当前docker的默认存储目录
docker info
- 可以看到docker存储驱动程序和默认存位:
Storage Driver: overlay2 Docker Root Dir: /var/lib/docker
二、停止docker服务
sudo systemctl stop docker.service
三、目录迁移
3.1 创建新的docker目录,执行命令df -h,找一个大的磁盘。 我在/mnt目录下面建了 /mnt/docker目录,执行的命令是:
# 查看文件夹大小 sudo du -hd 1 sudo mkdir -p /data/docker
3.2 迁移/var/lib/docker目录下面的文件到 /home/docker
sudo cp -r /var/lib/docker/* /data/docker/
四、修改配置文件
4.1 编辑 /etc/docker/daemon.json
文件
sudo vim /etc/docker/daemon.json
默认情况下这个配置文件是没有的,这里实际也就是新建一个,然后写入以下内容:
{ "data-root": "/data/docker" }
4.2 编辑docker配置文件:
sudo vim /etc/systemd/system/multi-user.target.wants/docker.service # 将ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock修改以下内容: ExecStart=/usr/bin/dockerd --graph=/data/docker --storage-driver=overlay2
五、保存退出,然后重启 docker 服务
- 重启docker服务,就可以更新docker默认的镜像容器保存位置,特别注意,如果新的保存位置里拷贝了原来容器保存位置里的所有内容,那么镜像数据等也就迁移过来了。
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
六、检查docker存储路径是否配置成功
docker info
七、启动成功后,再确认之前的镜像还在
docker ps -a
docker images
八、确定容器、镜像没问题后删除/var/lib/docker/目录中的文件。
rm -rf /var/lib/docker/*
九、重新启动docker服务遇到的问题
1、docker服务无法启动:现根据报错解决问题,如果不行就删除docker重新安装,我就是删除之后又重新安装的
1.1.卸载docker
1.1.1 查看已安装的docker列表
yum list installed | grep docker
1.1.2 删除已安装的docker
yum -y remove docker-ce.x86_64
1.2.安装docker
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)