Docker容器的日志默认情况下不会自行删除,可能导致内容无限增长,占用磁盘空间。
可以在Docker全局配置或创建容器时指定日志配置。
全局配置
注意:全局配置修改后需重启Docker,且只对后续创建的容器生效。
可以使用以下内容配置Docker daemon
:
{
"log-driver": "json-file",
"log-opts": {
"max-size":"16m",
"max-file":"3"
}
}
第一个配置是默认行为,使用json文件存放日志。重点是第二个配置:
max-size
指定单个日志文件的最大容量,这里设置为16MB。max-file
指定日志文件数,这里指定 3 表示三个日志文件轮换使用,一个满了就用下一个。
上述配置的日志最大磁盘占用为48MB,可根据需求自行修改。
容器创建配置
除了全局配置,也可以在容器创建时指定,实现更灵活的日志配置。以Nginx的容器创建为例:
docker run -d --log-driver=json-file --log-opt max-size=16m --log-opt max-file=3 nginx
也可以在docker-compose.yml
配置中指定:
services:
your_service:
image: nginx
logging:
driver: "json-file"
options:
max-size: "16m"
max-file: "3"
log-driver
依然可以省略,配置效果和上面全局配置相同,此处不赘述。
最后
再次提醒:
对于现存的容器,无论使用哪种方式,都需要重新创建。请在重建容器前做好数据的持久化工作。