Docker-日志以及磁盘占满解决
Posted 辰令
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker-日志以及磁盘占满解决相关的知识,希望对你有一定的参考价值。
log 容器镜像标准(image spec
磁盘占满
du -x -h --max-depth=1 /var/lib/docker/containers/
docker ps -a
step by step
01. docker info
Docker Root Dir: /var/lib/docker
02.du -x -h --max-depth=1 /var/lib/docker
docker默认存放镜像地址为 /var/lib/docker
容器的日志文件在/var/lib/docker/containers/
03.docker system df
容器日志
查看容器日志命令:
# 查看所有容器下日志的大小
find /var/lib/docker/containers/ -name *-json.log |xargs du -
docker logs -f container_name(容器名称)
进程一直在持续输出,而这些输出会记录到docker日志中,
删除日志
01.通过rm 日志删除后重启docker
Linux或者Unix系统中,通过rm -rf或者文件管理器删除文件,
将会从文件系统的目录结构上解除链接(unlink)。
如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用
<1>.查看当前目录正在被哪些进程在使用
fuser -uv .
lsof
pidof
02.覆盖操作 *cat /dev/null > -json.log
限制容器日志--不禁止日志输出,可以限制文件的大小
全局:docker需要重新加载配置文件和重启
/etc/docker/daemon.json 中log-opts参数
参数 说明
log-opts max-size 容器日志文件上限大小
log-opts max-file 窗口日志文件上限个数
容器范围内
docker run增加如下参数
--log-opt max-size=100m --log-opt max-file=3
附录
02.删除roscore进程
killall -9 roscore
killall -9 rosmaster
03.端口占用
fuser -v 66/udp 77/udp
lsof -i:66
04.ROS主从设置取消
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
05.ping 192.128.1.2 判断硬件是否可以连接通
sudo chown -R tt:tt ./data
--recursive
lsblk -d -o name,rota
查看,0表示固态硬盘,1表示机械硬盘,
lsblk -f
也可以查看挂载和未挂载的文件系统类型
file -s /dev/sda3
查看指定挂载盘的文件系统类型
df -Th 命令 查看文件系统类型在Type列输出
du -h -x --max-depth=1
磁盘空间根目录占满,命令逐级查找大文件
scp -r
镜像的架构
Linux container runtime / Wasm containerd shim
###Docker容器引擎安装后包含有这些组件:dockerd、Containerd、runc。
dockershim “shim”,意思是“垫片”。
###k8s -CRI
Kubelet
CRI(Container Runtime Interface)
CRI shim是实现CRI接口的gRPC server服务,负责连接Kubelet和Container runtime
Container runtime是容器运行时工具,它为用户进程隔离出一个独立的运行环境
K8s的调用方式
CRI 接口调用 dockershim,然后 dockershim 调用 docker,docker 再去 containerd 操作容器。
CRI 接口直接调用 containerd 操作容器
ctr 是 containerd 的一个客户端工具。
crictl 是 CRI 兼容的容器运行时命令行接口,可以使用它来检查和调试 k8s 节点上的容器运行时和应用程序。
docker 由 docker-client,dockerd,docker-shim,containerd,runc组成,所以containerd是docker的基础组件之一
容器运行时标准(runtime spec) 容器镜像标准(image spec) ###
OCI (Open Container Initiative 开放容器标准),该规范包含两部分内容:
容器运行时标准(runtime spec)、容器镜像标准(image spec)
容器运行时标准 -init creating created running stopped
高级容器运行时--开源containerd
containerd
cri-o
低级容器运行时有:
runc : 我们最熟悉也是被广泛使用的容器运行时,代表实现Docker。runv:
runV : 是一个基于虚拟机管理程序(OCI)的运行时。它通过虚拟化 guest kernel,将容器和主机隔离开来,使得其边界更加清晰,。代表实现是kata和Firecracker
runsc: runsc = runc + safety ,典型实现就是谷歌的gvisor,通过拦截应用程序的所有系统调用,提供安全隔离的轻量级容器运行时沙箱。用案例。
wasm : Wasm的沙箱机制带来的隔离性和安全性,都比Docker做的更好。
--runtime=io.containerd.wasmedge.v1
容器镜像标准(image spec)
--platform=wasi/wasm32 指定我们想要使用的镜像的体系结构。通过利用Wasm体系结构,我们不需要为不同的体系结构构建单独的镜像
镜像主要是由镜像层和容器配置两大部分组成的。
文件系统:以 layer 保存的文件系统
b). config 文件
c). manifest 文件
d). index 文件:可选的文件,指向不同平台的 manifest 文件,这个文件能保证一个镜像可以跨平台使用
Reference
File formats
Command-line interfaces
以上是关于Docker-日志以及磁盘占满解决的主要内容,如果未能解决你的问题,请参考以下文章