容器=cgroup+namespace_rootfs+容器引擎
docker 实战 https://blog.csdn.net/woniu211111/article/details/108675525
docker compose https://blog.csdn.net/pushiqiang/article/details/78682323
文件系统隔离
容器引擎:生命周期控制
主要用来访问隔离。原理是针对一类资源进行抽象,并将其封装在一起提供给一个容器使用,对于这类资源,
因为每个容器都有自己的抽象,而它们彼此之间是不可见的,所以就可以做到隔离
cgroup 是 Linux 内核的一个重要特性,用于限制、管理和监控进程组的资源使用。在容器技术中,cgroup 被广泛用于限制容器的资源使用,如 CPU、内存、磁盘 I/O 和网络带宽等。通过合理配置 cgroup,可以有效地管理容器的资源使用,确保系统的稳定性和可预测性。
Sysdig是一种功能强大的系统监控工具,也可以用于监控和调试容器化环境,包括 Docker。
将容器日志发送到STDOUT和STDERR
- docker默认的 logging driver 是 json-file。
- json-file会将容器的日志保存在json文件中。Docker负责格式化其内容并输出到STDOUT和STDERR
- 在Host的容器目录中找到这个文件,容器路径为/var/lib/docker/containers/contariner_ID/contariner_ID-json.log。
docker还支持其他多种logging driver,例如
- none 是 disable 容器日志功能。
- syslog 和 jourald 是 Linux 上的两种日志管理服务。
- awslogs、splunk 和 gcplogs 是第三方日志托管服务。
见Elastic stack篇
Fluentd是一个开源的数据收集器,支持上百种plugin,可以连接各种数据源和数据输出组件
可以用Filebeat将Fluentd收集的容器日志转发给Elasticsearch
fluent-plugin-elasticsearch插件可以让Fluentd直接将日志发送给Elasticsearch
创建 fluentd 目录并在该目录中创建 Dockerfile 和配置文件 fluent.conf。
创建 filebeat 目录并在该目录中创建 filebeat.yml 配置文件。
编写docker compose文件,配置mongo、es、graylog