Docker - docker-compose搭建ELK服务

2023-03-16 16:43:04 浏览数 (2)

概述

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

docker-compose 基本使用

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

代码语言:txt复制
$ tree
.
└── docker-compose.yaml

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

代码语言:txt复制
$ docker-compose pull
Pulling cerebro        ... done
Pulling kibana         ... done
Pulling elasticsearch  ... done
Pulling logstash       ... done
Pulling elasticsearch2 ... done

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

代码语言:txt复制
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]查看具体错误信息。

0 人点赞