redis服务不可用,可能是磁盘和cpu问题导致,端口和服务是正常的,但是访问不了
Docker 容器日志清理
1. 检查磁盘空间
1 | [root@izuf6iuxhvb38m9dsv93xlz ~]# df -Th |
从日志查看,磁盘占满100%,需要清理Docker容器日志
2. 清理未使用的镜像和容器
1 | docker system prune -a |
3. 清理Docker日志
3.1 检查当前的日志驱动
通过运行以下命令来查看 Docker 的配置,包括当前的日志驱动:
1 | docker info | grep "Logging Driver" |
执行后结果如下:
1
2
3
4
5
6 > [root@izuf6iuxhvb38m9dsv93xlz docker]# docker info | grep "Logging Driver"
> WARNING: You're not using the default seccomp profile
> Logging Driver: journald
> WARNING: bridge-nf-call-iptables is disabled
> WARNING: bridge-nf-call-ip6tables is disabled
>
- Docker 当前使用的日志驱动是
journald
。这意味着容器的日志并不是存储在传统的文件中,而是通过系统日志服务(systemd-journald
)进行管理。
3.2 查看 Docker 日志
使用 journalctl
命令查看 Docker 的日志。以下命令会显示 Docker 服务的所有日志:
1 | journalctl -u docker.service |
清理
journald
日志
journald
会保留日志文件以供后续查看,如果这些日志占用了大量空间,通过以下步骤进行清理:
3.3 限制 journald
日志的大小
在 /etc/systemd/journald.conf
文件中设置日志大小限制。添加或修改以下行:
1 | [Journal] |
这些设置用于限制 journald
使用的总空间和单个日志文件的大小。
配置项详解
SystemMaxUse=100M
- 含义:设置
journald
可以使用的最大存储空间为 100 MB。这意味着在达到此限制时,journald
会开始删除旧日志,以确保新日志能够继续写入。
- 含义:设置
SystemKeepFree=100M
- 含义:确保系统始终保持至少 100 MB 的可用空间。
journald
会根据需要删除旧的日志条目,以满足这个要求。
- 含义:确保系统始终保持至少 100 MB 的可用空间。
SystemMaxFileSize=10M
- 含义:设置单个日志文件的最大大小为 10 MB。当某个日志文件达到此大小时,
journald
会轮换日志,即创建一个新的日志文件,并将旧日志文件归档。
- 含义:设置单个日志文件的最大大小为 10 MB。当某个日志文件达到此大小时,
重启
systemd-journald
服务
- 修改配置文件
在编辑 /etc/systemd/journald.conf
文件并进行所需的更改后,保存文件。
- 重启
systemd-journald
服务
使用以下命令重启 systemd-journald
服务:
1 | systemctl restart systemd-journald |
- 确认更改生效
使用以下命令检查 systemd-journald
的状态,确认服务是否已成功重启:
1 | systemctl status systemd-journald |
- 检查日志配置
如果需要验证新配置是否生效,查看日志并确认其行为。例如,使用以下命令查看当前日志的状态:
1 | journalctl --disk-usage # 查看当前日志的状态 |
3.4 清理旧的日志条目
使用以下命令手动清理旧的日志:
1 | journalctl --vacuum-time=2d # 这将删除超过 2天的日志。可以根据需要调整时间。 |
使用
journald
作为日志驱动时,管理日志的方式与传统的文件系统有所不同。如果需要清理空间,通过调整journald
的配置、查看 Docker 的日志。
4. 配置 Docker 使用 json-file
日志驱动(可选)
- 将 Docker 的日志驱动更改为
json-file
,以便更方便地管理日志,在/etc/docker/daemon.json
中添加或修改以下内容:
1
2
3
4
5
6
7
8 > {
> "log-driver": "json-file",
> "log-opts": {
> "max-size": "10m",
> "max-file": "3"
> }
> }
>
- 重启Docker容器
1 | systemctl restart docker |
切换到
json-file
日志驱动后,现有容器的日志设置不会自动更改,需要重新创建这些容器以应用新的日志配置。