最近搭建基于Spring Cloud的微服务框架,日志系统当然最佳选择就是ELK。看着MAC 那紧巴巴的配置,又不想热情退去而留下一堆软件,果断选择Docker安装来节省那可怜的资源。当然这只是鹏哥的一点点小心思。

为什么使用docker 这里就不在赘述了,相信就算现在猪肉贵你没吃过,但是新闻里至少有猪的图片你应该看过吧。这篇文章的主旨是搭建一个ELK(主要是elasticsearch + kibana,logstash会在spring cloud 继承ELK的文章中介绍),Docker充其量是一个工具,但是磨刀不误砍柴工,我们还是先来看看安装ELK过程中用到的Docker命令吧。

Docker 常见命令

search 命令

下载镜像之前我们应该先搜索到镜像,搜索镜像的命令:

docker search [OPTIONS] TERM

OPTIONS说明:

  • --automated :只列出 automated build类型的镜像;
  • --no-trunc :显示完整的镜像描述;
  • -s :列出收藏数不小于指定值的镜像。

  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否 docker 官方发布
  • stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
  • AUTOMATED: 自动构建。

pull 命令

搜索之后找到对应的镜像,然后我们调用pull命令将镜像拉到本地:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS说明:

  • -a :拉取所有 tagged 镜像
  • --disable-content-trust :忽略镜像的校验,默认开启

run命令

镜像下来之后,我们的最终目的是要运行这个镜像,运行镜像需要用到run命令。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -P: 随机端口映射,容器内部端口随机映射到主机的高端口
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • --name="nginx-lb": 为容器指定一个名称;
  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h "mars": 指定容器的hostname;
  • -e username="ritchie": 设置环境变量;
  • --env-file=[]: 从指定文件读入环境变量;
  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
  • -m :设置容器使用内存最大值;
  • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • --link=[]: 添加链接到另一个容器;
  • --expose=[]: 开放一个端口或一组端口;
  • --volume , -v: 绑定一个卷

logs命令

镜像启动之后,会在容器里运行,那我们如何查看运行的情况呢?logs命令会帮我们输出运行的日志。

docker logs [OPTIONS] CONTAINER

OPTIONS说明:

  • -f : 跟踪日志输出
  • --since :显示某个开始时间的所有日志
  • -t : 显示时间戳
  • --tail :仅列出最新N条容器日志

ps 命令

镜像启动之后,会在有一个容器,如果我们想查看当前容器的信息,需要执行ps命令。

docker ps [OPTIONS]

OPTIONS说明:

  • -a :显示所有的容器,包括未运行的。
  • -f :根据条件过滤显示的内容。
  • --format :指定返回值的模板文件。
  • -l :显示最近创建的容器。
  • -n :列出最近创建的n个容器。
  • --no-trunc :不截断输出。
  • -q :静默模式,只显示容器编号。
  • -s :显示总的文件大小。

输出详情介绍:

  • CONTAINER ID: 容器 ID。
  • IMAGE: 使用的镜像。
  • COMMAND: 启动容器时运行的命令。
  • CREATED: 容器的创建时间。
  • STATUS: 容器状态。状态有7种:created(已创建)restarting(重启中)running(运行中)removing(迁移中)paused(暂停)exited(停止)dead(死亡)
  • PORTS: 容器的端口信息和使用的连接类型(tcpudp)。
  • NAMES: 自动分配的容器名称。

exec 命令

有时候我们需要进入到镜像的内部,exec 命令会帮助我们在容器内部执行命令。

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:

  • -d :分离模式: 在后台运行
  • -i :即使没有附加也保持STDIN 打开
  • -t :分配一个伪终端

start/stop/restart 命令

  • docker start :启动一个或多个已经被停止的容器
  • docker stop :停止一个运行中的容器
  • docker restart :重启容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]

rm 命令

如果我们认为这个容器已经没有存在的意义了,我们可以执行rm 命令删除这个容器。

docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS说明:

  • -f :通过 SIGKILL 信号强制删除一个运行中的容器。
  • -l :移除容器间的网络连接,而非容器本身。
  • -v :删除与容器关联的卷。

images命令

如果我们长期不使用,就会忘记我们之前拉取过那些,images 命令会列出我们本地所有的镜像。docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS说明:

  • -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
  • --digests :显示镜像的摘要信息;
  • -f :显示满足条件的镜像;
  • --format :指定返回值的模板文件;
  • --no-trunc :显示完整的镜像信息;
  • -q :只显示镜像ID。

rmi

本地镜像如果不在需要,放在本地就会占用宝贵的存储资源,鹏哥就非常在意这个,所以我会定期使用rmi命令清理本地不用的镜像。

docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明:

  • -f :强制删除;
  • --no-prune :不移除该镜像的过程镜像,默认移除;

介绍完我们会用到的docker命令之后,安装ELK就是水到渠成的事了,下边我们来安装ELK。

Docker 安装 elasticsearch

在elastic 6.0 版本之后 elastic 官方开始维护自己的Docker镜像包,所以如果我们要搭建elk的花,官方的包当然是首选,我们选用最新的7.5.1 版本来搭建。首先我们执行pull命令 将镜像拉到本地:

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.5.1

执行完pull命令之后,我们起一个容器,为了后边方便kibana 链接,这里最好指定一个名称:

docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearch docker.elastic.co/elasticsearch/elasticsearch:7.5.1

启动完之后在浏览器输入 http://localhost:9200 ,如果能看到如下的输出,说明我们已经安装启动成功。

Docker 安装 Kibana

安装完elasticsearch ,就像安装了一个命令行的操作系统,如果我们想直观的查看日志情况,我们需要一个GUI,kibana就是elastic的GUI,这也是elastic的核心竞争力。

同样的,我们先执行pull 命令拉下来7.5.1 版本的kibana,版本的选择有一定的要求:我们不能选高于elasticsearch的版本,同时又必须和elasticsearch 保持同样的大版本。当然简单起见我们选择同样的版本号是不会有问题的。

docker pull docker.elastic.co/kibana/kibana:7.5.1

拉完镜像之后,起一个容器,这里说明一下ELASTICSEARCH_URL 这个参数,鹏哥试下来似乎是没有作用的,可能是鹏哥不知道怎么用,如果有网友知道,也请帮忙告知一下,不胜感激。

docker run -d -p 5601:5601 --link elasticsearch -e ELASTICSEARCH_URL=http://elasticsearch:9200 --name kibana docker.elastic.co/kibana/kibana:7.5.1

我们在起kibana的时候需要知道elasticsearch容器的名称,ELASTICSEARCH_URL的规则可以是 http://[elasticsearch 容器名称]:9200,也可以是elasticsearch的无理IP地址,但是不能是localhost, 因为这样会解析到kibana容器内部,导致无法连接elasticsearch 服务器。

这里我们设置的elasticsearch 容器名称跟kibana 默认的 名称重合了,所以我们不用修改任何配置,这个时候打开浏览器 输入 http://localhost:5601 就能看到kibana的欢迎页面。但是如果我们没有设置 elasticsearch 的容器名称或者设置的其他的字符串,那么需要我们修改kibana.yml 来指定这个名称。

首先使用 exec 进入容器:

docker exec -it [你的容器id] /bin/bash

然后使用vim 打开 kibana.yml

vi /usr/share/kibana/config/kibana.yml

修改完之后输入 exit 推出当前的容器。然后使用restart 命令,重启容器,就能看到效果了。

kibana 默认是英文界面,如果需要支持中文,可以按照上边的方式修改 kibana.yml ,在最后一行追加:

i18n.locale: zh-CN

重启kibana ,刷新浏览器就能看到效果了。

总结

按照这套教程,你可以无脑的安装ELK而不用修改任何东西,也就是这是最简单的demo,如果你需要更高级别的配置,可以持续关注鹏哥的文章,因为鹏哥也在开始学习elastic 的东西。这套教程就是鹏哥花了两天的时间从零摸索出来的。虽然意义不大,但是没办法,鹏哥就是这么爱折腾。

docker pull的镜像放在哪里_Docker 安装ELK及Docker常见命令相关推荐

  1. docker下载mysql镜像很慢_docker下载镜像太慢的解决方案

    docker下载镜像卡死或太慢 找了网上很多方法,使用镜像中国也是下载卡死. 最后一种成功了,下载速度很满意 1.先再阿里云注册账号,不需要绑定什么,直接注册就可以了,有账号的直接登录就好. 地址:h ...

  2. docker pull下载镜像时的报错及其解决方法

    docker pull下载镜像时的报错及其解决方法 参考文章: (1)docker pull下载镜像时的报错及其解决方法 (2)https://www.cnblogs.com/it-artical/p ...

  3. yum安装与卸载软件常见命令

    1.使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的. 安装的命令是,yuminstall ~,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突 ...

  4. docker hub上镜像手动下载_docker: docker安装和镜像下载

    1安装docker的apt源 apt-get install apt-transport-https ca-certificates curl software-properties-common 2 ...

  5. Docker架构、镜像及容器的安装和基本操作

    Docker概念 Docker是在Linux容器里运行应用的开源工具,是一种轻量级的虚拟机.Docker的宗旨:Build,Ship and Run Any APP,Anywhere,即通过对应用组件 ...

  6. docker pull下载很慢_假如服务器上没有 Docker 环境,你还能愉快的拉取容器镜像吗?...

    你是否曾经遇到过需要在没有安装任何 Docker 客户端的机器上拉取容器镜像这样变态的需求呢?如果有,你当时又是如何解决的呢?今天我们就来给大家介绍几种另辟蹊径的方法来实现这样的需求. 使用 dock ...

  7. docker pull 私有_【赵强老师】管理Docker镜像

    一.什么是Docker的镜像 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙 ...

  8. Docker Pull 下载镜像

    Docker Pull Document 使用 docker pull [选项] [仓库/]name[:版本|@digest] 版本默认使用 :latest 选项 名称 默认 描述 --all-tag ...

  9. docker pull 下载镜像加速

    本文由首发于CSDN 授权转载微信公众号 xinsz08 使用docker pull,命令下载镜像太慢了,默认是从国外的,本文记录下如何配置国内阿里云竞相加速方式.文档力求简单. 环境说明: Linu ...

最新文章

  1. 在Java项目中整合Scala
  2. 一定要会的synchronized关键字的用法
  3. oracle服务器不识别tc服务,记一次ORACLE无法启动登陆事故
  4. 推荐一个wpfsliverlight的图表控件
  5. 使用GUID作为数据库主键与INT作为主键的性能测试
  6. C#抽象类和抽象方法
  7. 工商银行 Serverless 函数计算落地实践
  8. oracle刷同义词报错,oracle 同义词
  9. python抽奖游戏、某商场为了促销_详解python--模拟轮盘抽奖游戏
  10. Google 学术搜索(Google Scholar)使用技巧
  11. WITH TIES语句(SQL)
  12. 京东颜色html,京东m.jd站点静态页实现(首页)H5
  13. 二分类神经网络结果准确率50%,loss一直在0.69的解决方法
  14. 科技发展快速,VR、AR概念要怎么区分?
  15. 如何建立英文字符的哈希表
  16. ubuntu(linux) 离线更新显卡驱动
  17. 【苹果相册推iMessage】群发执行日历推位置推 ionic platform add ios (增加ios平台)
  18. 职业价值观免费免登陆直接在线测试
  19. LDC1612异常读数268435455
  20. 服务器装系统步骤图解win7,怎么装win7系统?本地硬盘安装win7/XP系统详细教程

热门文章

  1. nginx丢弃http包体处理
  2. 面试官:看你简历写了熟悉Kafka,它为什么速度会这么快?
  3. golang程序如何优雅地退出
  4. 无招胜有招之Java进阶JVM(七)对象模型
  5. spring整合mybatis基于xml配置
  6. leetcode 388. Longest Absolute File Path | 388. 文件的最长绝对路径(栈+DFS)
  7. Volatile可见性、缓存一致性协议、指令重排、内存屏障 - 手写笔记
  8. java安全编码指南之:方法编写指南
  9. vue office在线编辑_VUE和Antv G6实现在线拓扑图编辑
  10. golang学习笔记01