【Docker】容器监控与日志管理
·
一、记录容器日志
将容器日志记录到syslog
- 打开一个终端窗口实时监控
tail -f /var/log/messages

- 打开另一个终端窗口,将容器Redis的日志记录到syslog日志系统
docker run --rm -d --log-driver syslog --name redis redis

- 返回第一个终端窗口,查看输出日志信息

- 停止并自动删除容器
docker stop redis
二、将容器的日志记录到journald
- 创建名为redis的容器
docker run --rm -d --log-driver journald --name redis redis

- 使用journalctl命令查看该容器日志信息
CONTAINER_NAME用来指定容器名称
journalctl CONTAINER_NAME=redis

:q退出
三、配置管理Docker守护进程
(1)从Docker守护进程获取实时事件
- 在一个窗口执行以下命令监听事件
docker events

- 打开另一个窗口,启动容器然后终止容器
docker create --name test alpine:latest top
docker start test
docker stop test

- 切换到另一个窗口查看监控

Ctrl+C退出
(2)查看docker守护进程日志
journalctl -u docker.service

(3)测试docker的实时恢复功能
- 编辑 Docker 守护进程配置文件/etc/docker/daemon. json,启用实时恢复功能。在该文件中添加以下内容 “live-restore”: true
vi /etc/docker/daemon.json

- 重启docker守护进程
systemctl restart docker
docker info
出现一下配置表明已启用实时恢复功能
- 基于 httpd 镜像创建一个运行 Apache 服务容器,然后查看正在运行的容器
docker run --rm -d --name web1 -p 8080:80 httpd

- 重新加载 Docker守护进程,然后查看正在运行的容器
systemctl reload docker

- 使用 kill 命令结束 dockerd 守护进程,然后查看正在运行的容器
kill -SIGHUP $(pidof dockerd)

容器还在运行
- 访问该容器提供的 Apache 服务,结果表示该服务正常
curl http://127.0.0.1:8080

- 停止容器
docker stop web1

(4)开启Docker守护进程的远程连接
- 编辑override文件
systemctl edit docker.service
添加以下内容:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
- 执行以下命令重新加载systemctl 配置
systemctl daemon-reload
- 重启Docker
systemctl restart docker.service
- 查看Docker守护进程是否在所配置的端口上监听
yum -y install net-tools
netstat -lntp | grep dockerd

- 可以在 Docker 客户端命令中通过-H选项指定要连接的远程主机(如果远程主机启用了防火墙,则应开放 TCP2375 端口),例如:
docker -H tcp://主机地址:2375 info
四、谢谢观看!
更多推荐
所有评论(0)