天天关注:Docker - docker-compose搭建ELK服务

概述

使用的是docker-compose方法安装elk组件,对这部分的内容进行一个知识上的补充,使用docker-compose来编排中小型企业或者个人的开发环境是非常简捷高效的方式。

docker-compose 基本使用

docker-compose工具使用的前提是你已经准备好了yaml文件工具,在之前的博客里我总结了命令式和声明式的区别与关系,在这里我就不过多的叙述了,使用docker-compose的前提是文件夹里已经准备好了docker-compose文件。

$ tree.└── docker-compose.yaml

1.使用docker-compose pull, 提前下载好yaml文件中所需要的镜像。


(资料图片)

$ docker-compose pullPulling cerebro        ... donePulling kibana         ... donePulling elasticsearch  ... donePulling logstash       ... donePulling elasticsearch2 ... done

2.启动服务,-d, 守护进程方式

docker-compose up // 直接启动docker-compose up -d //守护进程方式

3.docker-compose 构建

docker-compose重新加载镜像,执行docker-compose up -d --build命令进行构建。

4.docker-compose网络

1.当你未指定网络时,docker-compose就会给你创建一个默认的网络,可以执行docker network ls里查看。

5.清理容器

清理后台已经终止运行的容器

docker-compose rm

6.docker-compose扩展

如果想对实例进行水平扩展,执行下面的命令:

docker-compose up -d --scale servericeName=3

当然我们也可以减少实例数量:

docker-compose up -d --scale servericeName=1

yaml文件结构体demo

version: "2.2"services:  box1:    image: imageName:version    command: /bin/sh -c "while true;do sleep 3600;done"  box2:    image: imageName:version    command: /bin/sh -c "while true;do sleep 3600;done"

github地址:https://github.com/stark0824/k8s/tree/main/DockerCompose/elk

最后

1. yaml文件格式问题

ERROR: yaml.scanner.ScannerError: while scanning for the next tokenfound character "\t" that cannot start any token

yaml的格式比较严格,产生上面的错误是因为文件里有使用tab键的地方,把它替换成空格就可以解决问题了。

2. volumes文件映射问题

ERROR: for logstash7  Cannot start service logstash:failed to create shim: OCI runtime create failed

文件volumes文件映射路径不存在导致的logstash服务启动失败,可以使用命令docker-compose logs [容器name]查看具体错误信息。