docker学习笔记-------如何优雅的查看docker容器的日志

举例来说,如果容器内部运行了一个redis 服务,怎么样查看redis的运行状态


1 ssh管理容器 先说的也是最差劲的方法  登录到容器内 开一个shell  /bin/bash 

  然后在tail -f  /var/logs/redis/redis_primary.log ,

  看完了再exit 到容器外边 ok ,

  很  low.....


2 另外一种方法,需要用到Dockerfile 中的 volume 知识  ,volume 是用来进行容器中用来数据共享的命令 

所以在build镜像的时候 ,可以将日志文件用卷volume分享出来

例如: VOLUME [ "/var/lib/redis", "/var/log/redis" ]

然后用这个镜像 运行的容器 ,可以用新建一个容器来查看这个共享卷的内容,来实现查看日志的目的

docker run -it --rm --volumes-from redis_replica  ubuntu cat /var/log/redis/redis-server.log  

这条命令 : 1 用ubuntu 运行了一个容器     2 --rm 是在容器exit之后 自动从系统删除  3 --volumes-from 就是要监控的容器的服务的日志文件,因为redis_replica 分享出啦一个卷 来存放日志 ,所以在运行容器的初始化命令 是cat xx.log 


3 logstash 这个东西的原理是:会一直监视制定文件,将其中更新的内容发给logstash ,然后通过的logstash输出 ,所以我们运行一个logstash 容器就可以监控我们所有的想监控的容器应用 

logstash的dockerfile 

https://github.com/jamtur01/dockerbook-code/tree/master/code/6/node/logstash

用wget 把两个文件下载下来 ,然后build logstash 容器

运行  docker run -d --name logstash --volumes-from redis_primary --volumes-from nodeapp logstash


你可能感兴趣的:(linux,shell,管理,docker)