[toc]
## **docker容器的stdout日志**
我们可以通过命令`docker logs <containerName>` 或 `docker logs <containerID>`来查看一个docker容器的stdout日志。如果docker-daemon的启动参数`--log-driver`设置为`json-file`,那么容器的stdout日志会被保存在主机的一个文件中。那么这个文件在哪里呢?
首先,执行如下命令根据容器的名字查看容器完整的containerID,第一列就是
```
$ docker ps --no-trunc | grep <containerName>
```
然后去到`/var/lib/docker/containers/<containerID>/`目录下,里面会有一个名字为`<containerID>-json.log`的文件,它就是这个docker容器stdout日志存放的文件。
小结: docker容器标准输出日志文件的路径为
```
/var/lib/docker/containers/<containerID>/<containerID>-json.log
```
## **日志滚动**
我们可以限制每个容器stdout日志文件的大小,比如不超过500M。编辑`/etc/docker/daemon.json`,添加以下内容:
```
{
"log-driver": "json-file",
"log-opts": {
"max-size": "500m"
}
}
```
## **快速清理**
执行以下的命令,可以快速清理掉日志(要以root用户运行)
```
$ echo '{"log":"hello world","stream":"stdout","time":"2021-01-11T13:00:45.037971347Z"}' > /var/lib/docker/containers/<containerID>/<containerID>-json.log
```
## **Reference**
* https://docs.docker.com/config/containers/logging/configure/
- 安装
- 在线安装
- 离线安装
- 下载镜像
- 下载DockerHub镜像
- 下载Google镜像
- 阿里云镜像中心
- 下载ARM镜像
- 容器命名空间
- Linux命名空间概述
- 根据PID快速定位到容器
- 进入到容器的命名空间
- Dockerfile
- 基本语法
- 前台运行
- 镜像存储
- 本地存储
- Registry中的存储
- 如何判断两个镜像是否是同一个
- Registry
- Notification
- Auth
- 基本原理
- Token认证的设计
- API
- Pull镜像
- Push镜像
- Docker设置代理
- 日志
- 磁盘占用与清理
- Docker选项与K8S的Yaml
- 运维总结
- 常用命令
- DockerCompose
- 构建ARM版本
- 跨架构
- x86架构下构建arm64镜像
- Containerd
- ctr-crictl-nerdctl
- ctr
- Insecure-Registry
- Kata
- 构建OS镜像
- 进入到kata虚机