概述
使用的是docker-compose方法安装elk组件,对这部分的内容进行一个知识上的补充,使用docker-compose来编排中小型企业或者个人的开发环境是非常简捷高效的方式。
docker-compose 基本使用
docker-compose工具使用的前提是你已经准备好了yaml文件工具,在之前的博客里我总结了命令式和声明式的区别与关系,在这里我就不过多的叙述了,使用docker-compose的前提是文件夹里已经准备好了docker-compose文件。
代码语言:txt复制$ tree
.
└── docker-compose.yaml
1.使用docker-compose pull
, 提前下载好yaml文件中所需要的镜像。
$ docker-compose pull
Pulling cerebro ... done
Pulling kibana ... done
Pulling elasticsearch ... done
Pulling logstash ... done
Pulling 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.清理容器
清理后台已经终止运行的容器
代码语言:txt复制docker-compose rm
6.docker-compose扩展
如果想对实例进行水平扩展,执行下面的命令:
代码语言:txt复制docker-compose up -d --scale servericeName=3
当然我们也可以减少实例数量:
代码语言:txt复制docker-compose up -d --scale servericeName=1
yaml文件结构体demo
代码语言:txt复制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文件格式问题
代码语言:txt复制ERROR: yaml.scanner.ScannerError: while scanning for the next token
found character 't' that cannot start any token
yaml的格式比较严格,产生上面的错误是因为文件里有使用tab键的地方,把它替换成空格就可以解决问题了。
2. volumes文件映射问题
代码语言:txt复制ERROR: for logstash7 Cannot start service logstash:
failed to create shim: OCI runtime create failed
文件volumes文件映射路径不存在导致的logstash服务启动失败,可以使用命令docker-compose logs [容器name]
查看具体错误信息。