当前位置 博文首页 > RtxTitanV的博客:Docker常见应用部署

    RtxTitanV的博客:Docker常见应用部署

    作者:[db:作者] 时间:2021-07-07 12:38

    Docker的核心思想就是如何将应用整合到容器中,并且能在容器中实际运行。将应用整合到容器中并且运行的这个过程,称为“容器化”或者“Docker化”。使用容器能够简化应用的构建、部署和运行的整个过程。

    如果一个应用被打包为一个Docker镜像,就能以镜像的形式交付并以容器的方式运行。本文主要总结诸如mysql、redis和nginx等常见应用的部署,这些常见应用都已经以Docker镜像的方式交付,使用Docker部署其实就是以容器方式运行。

    首先需准备环境,不管服务器用什么系统,只要安装了Docker的环境都没问题。如果还没有安装Docker,操作系统用的CentOS7,可以参考Docker在CentOS7上的安装及常用命令。而本文中服务器操作系统使用的CentOS Linux release 7.7.1908,Docker使用的19.03.5版本。在进行部署之前,如果想查看特定版本,可以进入docker hub搜索应用,这里以mysql为例,搜索mysql,进入mysql官方镜像库,通过Tags查看版本,选择指定版本。
    搜索mysql
    查看Tags

    一、nginx部署

    1.拉取nginx镜像

    这里拉取nginx官方最新版镜像:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull nginx
    Using default tag: latest
    latest: Pulling from library/nginx
    8ec398bc0356: Pull complete
    dfb2a46f8c2c: Pull complete
    b65031b6a2a5: Pull complete
    Digest: sha256:8aa7f6a9585d908a63e5e418dc5d14ae7467d2e36e1ab4f0d8f9d059a3d071ce
    Status: Downloaded newer image for nginx:latest
    docker.io/library/nginx:latest
    

    2.创建并运行nginx容器

    创建运行一个nginx容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name mynginx -p 80:80 nginx
    6a904992225184a5fa581fa135825a7e01f83f3addef74c3790916daa9bd176d
    

    创建nginx相关目录,用于存放nginx相关资源:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# mkdir -p /usr/local/dockerdata/nginx/{conf,conf.d,html,logs}
    

    将容器中的nginx.confdefault.confhtml中的index.html拷贝至主机:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker cp mynginx:/etc/nginx/nginx.conf /usr/local/dockerdata/nginx/conf
    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker cp mynginx:/etc/nginx/conf.d/default.conf /usr/local/dockerdata/nginx/conf.d
    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker cp mynginx:/usr/share/nginx/html /usr/local/dockerdata/nginx
    

    删除之前的容器并重新创建运行一个有目录挂载的容器,这样方便修改配置,想要修改配置只需要修改主机挂载目录中的配置文件:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker stop mynginx
    mynginx
    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker rm -f mynginx
    mynginx
    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name mynginx -p 80:80 -v /usr/local/dockerdata/nginx/html:/usr/share/nginx/html -v /usr/local/dockerdata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/dockerdata/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /usr/local/dockerdata/nginx/logs:/var/log/nginx nginx
    0b083a0ae1f4e4897f502b2cf9abb1d192f3c2aed2ab0109b332fc6431125053
    

    3.验证是否部署成功

    访问http://主机ip,出现下图所示的nginx欢迎页面说明部署成功:
    部署成功
    如果出现下图错误:403 ForBidden
    原因1有可能是nginx目录没有index文件,注意使用目录挂载的时候,主机挂载的目录,我这里是/usr/local/dockerdata/nginx/html目录,需要将容器中的index拷贝出来,或者自定义一个index
    原因2有可能是启动用户和nginx工作用户不一致,nginx.configuser改为和启动用户一致。
    原因3有可能是SELinux设置为开启状态,通过cat /etc/selinux/config查看SELinux状态,如果SELINUX=enforcing,需要改成SELINUX=disabled

    二、redis部署

    1.拉取redis镜像

    这里拉取redis官方最新版镜像:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull redis
    Using default tag: latest
    latest: Pulling from library/redis
    8ec398bc0356: Already exists
    da01136793fa: Pull complete
    cf1486a2c0b8: Pull complete
    a44f7da98d9e: Pull complete
    c677fde73875: Pull complete
    727f8da63ac2: Pull complete
    Digest: sha256:90d44d431229683cadd75274e6fcb22c3e0396d149a8f8b7da9925021ee75c30
    Status: Downloaded newer image for redis:latest
    docker.io/library/redis:latest
    

    2.准备配置文件

    在Redis官网下载一个与Docker容器中Redis版本一致的Redis,由于我使用的是redis最新版镜像,就下载的我写这篇总结时的最新版redis-5.0.7.tar.gz。下载完成后找到配置文件redis.conf,进行如下修改:

    # 开启验证,密码123456
    requirepass 123456
    # 限制redis只能本地访问,注释掉,允许远程连接
    # bind 127.0.0.1
    # 保护模式,默认yes为开启,若设置yes,想远程访问必须配置bind ip或者requirepass 验证密码,如果既没有显示定义bind ip又没有配置requirepass 验证密码时,只能通过本127.0.0.1访问redis服务,这里由于已经注释掉了bind,想要远程访问又不想设置密码,需设置protected-mode no
    protected-mode yes
    # 默认为no,改为daemonize yes时以配置文件方式启动,容器会一直启动失败,可以注释掉或保持默认为no
    daemonize no
    # 开启redis持久化
    appendonly yes
    

    创建用于挂载的目录:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# mkdir -p /usr/local/dockerdata/redis/{data,conf}
    

    redis.conf上传到/usr/local/dockerdata/redis/conf目录。

    3.创建并运行redis容器

    创建并以配置文件的方式启动运行一个redis容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name myredis -p 6379:6379 -v /usr/local/dockerdata/redis/data:/data -v /usr/local/dockerdata/redis/conf/redis.conf:/etc/redis/redis.conf redis redis-server /etc/redis/redis.conf
    ee84b232701b6edc6148e158fb0ee0b1740751b30105cc47f7395d3b36d0f9d8
    

    4.验证是否部署成功

    登录redis容器并进入redis-cli,需要验证,能正常存取说明部署成功:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker exec -it myredis redis-cli
    127.0.0.1:6379> set key1 aaa
    (error) NOAUTH Authentication required.
    127.0.0.1:6379> auth "123456"
    OK
    127.0.0.1:6379> set key1 aaa
    OK
    127.0.0.1:6379> set key2 bbb
    OK
    127.0.0.1:6379> get key1
    "aaa"
    127.0.0.1:6379> get key2
    "bbb"
    

    退出redis容器查看appendonly.aof持久化文件有记录,说明data目录挂载成功:

    127.0.0.1:6379> exit
    [root@iZwz94v2sdd3v6zcczsu67Z ~]# cat /usr/local/dockerdata/redis/data/appendonly.aof
    *2
    $6
    SELECT
    $1
    0
    *3
    $3
    set
    $4
    key1
    $3
    aaa
    *3
    $3
    set
    $4
    key2
    $3
    bbb
    

    使用redis桌面客户端RedisDesktopManager连接成功:
    redis客户端连接成功
    redis客户端连接成功

    三、tomcat部署

    1.拉取tomcat镜像

    拉取tomcat:9.0-jdk8-corretto镜像:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull tomcat:9.0-jdk8-corretto
    9.0-jdk8-corretto: Pulling from library/tomcat
    67e0556e0c29: Pull complete
    958dc053a014: Pull complete
    d7d770ea95ef: Pull complete
    6324ccf672fd: Pull complete
    0557a33c71c6: Pull complete
    Digest: sha256:8a8b1c4e9d4cac97c8871ff84aafa6a1161c9aabafd17ca5407d3ee8205ed054
    Status: Downloaded newer image for tomcat:9.0-jdk8-corretto
    docker.io/library/tomcat:9.0-jdk8-corretto
    

    2.创建并运行tomcat容器

    创建运行一个tomcat容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name mytomcat -p 8080:8080 tomcat:9.0-jdk8-corretto
    7e204a6a0162c2d00ece8afc64e7b89ddeb6e2a18d10f52032e5022e8e4e8a38
    

    创建用于挂载的目录:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# mkdir -p /usr/local/dockerdata/tomcat/{webapps,conf,logs}
    

    将tomcat配置文件server.xml拷贝到主机:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker cp mytomcat:/usr/local/tomcat/conf/server.xml /usr/local/dockerdata/tomcat/conf
    

    删除之前的容器并重新创建运行一个有目录挂载的容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker stop mytomcat
    mytomcat
    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker rm -f mytomcat
    mytomcat
    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name mytomcat -p 8080:8080 -v /usr/local/dockerdata/tomcat/webapps:/usr/local/tomcat/webapps -v /usr/local/dockerdata/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml -v /usr/local/dockerdata/tomcat/logs:/usr/local/tomcat/logs tomcat:9.0-jdk8-corretto
    cee15b4f5cbfa20953e7874d1325ead7b482ef040a6e4906a678ef2854f24b76
    

    3.验证是否部署成功

    下载一个tomcat-9.0.30,将tomcat目录webapps下的ROOT目录上传到主机/usr/local/dockerdata/tomcat/webapps目录下,访问http://主机ip:8080,出现下图所示的tomcat欢迎页面说明部署成功:
    部署成功

    四、mysql部署

    1.拉取mysql镜像

    拉取mysql:8.0.16镜像:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull mysql:8.0.16
    8.0.16: Pulling from library/mysql
    0a4690c5d889: Pull complete
    98aa2fc6cbeb: Pull complete
    0777e6eb0e6f: Pull complete
    ...
    Digest: sha256:5d11283aee9b73509b737785e0ad79a2d9abf51f4abf3f221702a8add0e36bf2
    Status: Downloaded newer image for mysql:8.0.16
    docker.io/library/mysql:8.0.16
    

    2.创建并运行mysql容器

    创建用于挂载的目录:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# mkdir -p /usr/local/dockerdata/mysql/{data,conf,logs}
    

    创建运行mysql容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name mymysql -p 3306:3306 -v /usr/local/dockerdata/mysql/data:/var/lib/mysql -v /usr/local/dockerdata/mysql/conf:/etc/mysql/conf.d -v /usr/local/dockerdata/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.16
    d9f90c89b7907443adcb06c83144ed162cda51fdf7a770a61346430d747869ec
    

    3.验证是否部署成功

    进入mysql容器并登录mysql,能成功登录说明部署成功:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker exec -it mymysql bash
    root@d9f90c89b790:/# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 8
    Server version: 8.0.16 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
    

    使用navicat远程连接mysql,出现下图错误:
    远程连接mysql出错
    原因是docker mysql为较新的mysql8,将原来的身份验证插件mysql_native_password更换了新的身份验证插件caching_sha2_password。解决办法是登入mysql容器登录mysql客户端进行如下操作:

    mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    Query OK, 0 rows affected (0.01 sec)
    

    root可以改为自己的用户名,123456可以改为自己的密码。再次使用navicat远程连接mysql,连接成功:
    mysql远程连接成功
    在这里插入图片描述

    五、mongodb部署

    1.拉取mongodb镜像

    拉取mongodb官方最新版镜像:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull mongo
    Using default tag: latest
    latest: Pulling from library/mongo
    2746a4a261c9: Already exists
    4c1d20cdee96: Already exists
    0d3160e1d0de: Already exists
    c8e37668deea: Already exists
    fc3987a82b4c: Pull complete
    c75f139e0836: Pull complete
    ...
    Digest: sha256:7a1406bfc05547b33a3b7b112eda6346f42ea93ee06b74d30c4c47dfeca0d5f2
    Status: Downloaded newer image for mongo:latest
    docker.io/library/mongo:latest
    

    2.创建并运行mongodb容器

    创建运行mongodb容器,/usr/local/dockerdata/mongodb/data/db目录挂载至容器/data/db目录,--auth表示带权限验证:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name mymongodb -p 27017:27017 -v /usr/local/dockerdata/mongodb/data/db:/data/db mongo --auth
    46acd6d202b15bbab8254053a97208d3d896d4253dd0ef22325a47eaa8c4c4a5
    

    3.验证是否部署成功

    访问http://主机ip:27017,出现下图页面说明mongodb服务启动成功:
    mongodb服务启动成功
    登录mongodb容器并进入admin数据库,创建一个用户root,密码123456,赋予用户root及超级管理员权限:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker exec -it mymongodb mongo admin
    MongoDB shell version v4.2.2
    connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("4a03e4a7-8b9a-40d3-8183-cc2a2b3baf8e") }
    MongoDB server version: 4.2.2
    Welcome to the MongoDB shell.
    For interactive help, type "help".
    For more comprehensive documentation, see
            http://docs.mongodb.org/
    Questions? Try the support group
            http://groups.google.com/group/mongodb-user
    > db.createUser({ user: "root", pwd: "123456", roles: [{ role: "root", db: "admin" }] })
    Successfully added user: {
            "user" : "root",
            "roles" : [
                    {
                            "role" : "root",
                            "db" : "admin"
                    }
            ]
    }
    

    如下进行用户认证登录,返回1表示认证登录成功:

    > db.auth('root', '123456')
    1
    

    新建一个数据库test和具有读写权限的用户:

    > use test
    switched to db test
    > db.createUser({ user: "test", pwd: "123456", roles: [{ role: "readWrite", db: "test" }] })
    Successfully added user: {
            "user" : "test",
            "roles" : [
                    {
                            "role" : "readWrite",
                            "db" : "test"
                    }
            ]
    }
    

    退出容器后再登入容器进入mongodb,进入test数据库,登录新创建的只有读写权限的该数据库用户test,创建一个collection并插入一条记录,成功后返回WriteResult({ "nInserted" : 1 }),说明开启权限认证的mongodb部署成功,具体内容如下:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker exec -it mymongodb mongo bash
    MongoDB shell version v4.2.2
    connecting to: mongodb://127.0.0.1:27017/bash?compressors=disabled&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("eb607d78-834e-4ad9-8afb-3842de0eaa4c") }
    MongoDB server version: 4.2.2
    > use test
    switched to db test
    > db.auth('test', '123456')
    1
    > db.collection1.insert({"name":"abc"})
    WriteResult({ "nInserted" : 1 })
    

    使用客户端工具Robo 3T远程连接mongodb,连接成功:
    用户验证
    测试连接成功
    进入mongodb数据库

    六、RabbitMQ部署

    1.拉取RabbitMQ镜像

    拉取rabbitmq:3.8.3-management镜像,management为带管理界面的RabbitMQ:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull rabbitmq:3.8.3-management
    3.8.3-management: Pulling from library/rabbitmq
    423ae2b273f4: Pull complete
    de83a2304fa1: Pull complete
    f9a83bce3af0: Pull complete
    ...
    Digest: sha256:cebb67a53272c6734d1a8339eaa1a38aec08c2e22469a8529336ffb35fe9853b
    Status: Downloaded newer image for rabbitmq:3.8.3-management
    docker.io/library/rabbitmq:3.8.3-management
    

    2.创建并运行RabbitMQ容器

    创建运行RabbitMQ容器,/usr/local/dockerdata/rabbitmq/data目录挂载至容器/var/lib/rabbitmq目录:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name myrabbitmq -p 5672:5672 -p 15672:15672 -v /usr/local/dockerdata/rabbitmq/data:/var/lib/rabbitmq --hostname myrabbit -e RABBITMQ_DEFAULT_VHOST=myvhost  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.8.3-management
    880a1879e7f04274d0fe680af5395c3f4b16fff7d9dcee4bf0d7a73e67c72906
    

    3.验证是否部署成功

    访问http://主机ip:15672,出现下图所示的登录页面并输入用户名和密码后能成功登录RabbitMQ管理页面说明部署成功:
    登录rabbitmq
    rabbitmq管理主页面
    rabbitmq用户页面

    七、Zipkin部署

    1.拉取Zipkin镜像

    拉取openzipkin/zipkin:2.18镜像:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull openzipkin/zipkin:2.18
    2.18: Pulling from openzipkin/zipkin
    9ff2acc3204b: Pull complete
    69e2f037cdb3: Pull complete
    044a980d3e5b: Pull complete
    ...
    Digest: sha256:80c5aef490522ffd3f377fb670fdb153e0455d15e3031a3d605b3b03aaf95e04
    Status: Downloaded newer image for openzipkin/zipkin:2.18
    docker.io/openzipkin/zipkin:2.18
    

    2.创建并运行Zipkin容器

    创建运行Zipkin容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name myzipkin -p 9411:9411 openzipkin/zipkin:2.18
    4a79cd4a4c4667489b54b8f92cff30af1922d0a909edaa15afa07a9899f737fc
    

    3.验证是否部署成功

    访问http://主机ip:9411,出现下图所示的Zipkin页面说明部署成功:
    zipkin首页

    八、elasticsearch部署

    1.拉取elasticsearch镜像

    拉取elasticsearch:7.6.0镜像:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull elasticsearch:7.6.0
    7.6.0: Pulling from library/elasticsearch
    ab5ef0e58194: Already exists
    c7bddb370e64: Pull complete
    b477f7f946d3: Pull complete
    5a7d0cebbd37: Pull complete
    72685965d8ec: Pull complete
    9fdbb1d5d01e: Pull complete
    f96afe9ae49e: Pull complete
    Digest: sha256:578266a8f2de6e1a6896c487dd45cfc901a82ddf50be13bb7c56f97ecd693f77
    Status: Downloaded newer image for elasticsearch:7.6.0
    docker.io/library/elasticsearch:7.6.0
    

    2.创建并运行elasticsearch容器

    创建运行elasticsearch容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name myelasticsearch -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" elasticsearch:7.6.0
    add90e7257b6990ad62646c3338401149615fba273dd86605d55c59121b2d2bb
    

    3.验证是否部署成功

    访问http://主机ip:9200,返回以下JSON说明部署成功:
    验证是否部署成功

    4.解决跨域访问问题

    进入elasticsearch容器,修改配置:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker exec -it myelasticsearch /bin/bash
    [root@add90e7257b6 elasticsearch]# vi /usr/share/elasticsearch/config/elasticsearch.yml
    

    修改为如下配置,保存后重启容器:

    cluster.name: "myes-cluster"
    network.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    5.安装ik分词器

    安装ik分词器,版本与elasticsearch一致:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker exec -it myelasticsearch /bin/bash
    [root@add90e7257b6 elasticsearch]# cd /usr/share/elasticsearch/plugins/
    [root@add90e7257b6 plugins]# elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.0/elasticsearch-analysis-ik-7.6.0.zip
    -> Installing https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.0/elasticsearch-analysis-ik-7.6.0.zip
    -> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.0/elasticsearch-analysis-ik-7.6.0.zip
    [=================================================] 100%??
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @     WARNING: plugin requires additional permissions     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    * java.net.SocketPermission * connect,resolve
    See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
    for descriptions of what these permissions allow and the associated risks.
    
    Continue with installation? [y/N]y
    -> Installed analysis-ik
    

    6.安装elasticsearch-head插件

    elasticsearch-head是elasticsearch的一个数据可视化管理插件,用来监视elasticsearch的状态,并通过head客户端和ES服务进行交互。首先在windows上通过传统的方式安装,安装之前需要先装node.js,这里就不说明了。首先下载elasticsearch-head:

    $ git clone https://github.com/mobz/elasticsearch-head.git
    Cloning into 'elasticsearch-head'...
    remote: Enumerating objects: 4337, done.
    remote: Total 4337 (delta 0), reused 0 (delta 0), pack-reused 4337
    Receiving objects: 100% (4337/4337), 2.48 MiB | 767.00 KiB/s, done.
    Resolving deltas: 100% (2417/2417), done.
    

    然后安装grunt,运行head插件需要用到grunt命令,进入node.js目录安装grunt:

    D:\DevTool\nodejs>npm install -g grunt-cli
    D:\DevTool\nodejs\node_global\grunt -> D:\DevTool\nodejs\node_global\node_modules\grunt-cli\bin\grunt
    + grunt-cli@1.3.2
    added 150 packages from 121 contributors in 28.872s
    
    D:\DevTool\nodejs>grunt -version
    grunt-cli v1.3.2
    

    进入elasticsearch-head目录,启动elasticsearch-head插件:

    D:\DevTool\elasticsearch-head>grunt server
    Running "connect:server" (connect) task
    Waiting forever...
    Started connect web server on http://localhost:9100
    

    访问http://localhost:9100,出现下图所示的elasticsearch管理页面并输入elasticsearch的地址,能连接上elasticsearch说明安装成功:
    传统方式安装elasticsearch-head连接es
    通过docker的方式也可以安装,而且更方便。首先拉取mobz/elasticsearch-head:5镜像:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull mobz/elasticsearch-head:5
    5: Pulling from mobz/elasticsearch-head
    75a822cd7888: Pull complete
    57de64c72267: Pull complete
    4306be1e8943: Pull complete
    ...
    Digest: sha256:55a3c82dd4ba776e304b09308411edd85de0dc9719f9d97a2f33baa320223f34
    Status: Downloaded newer image for mobz/elasticsearch-head:5
    docker.io/mobz/elasticsearch-head:5
    

    然后创建运行elasticsearch-head容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name myelasticsearchhead -p 9100:9100 mobz/elasticsearch-head:5
    385d4e778343e05b2d02b79910b1c6da34e295dcd9a358a5e4493b9522637e62
    

    访问http://主机ip:9100,出现下图所示的elasticsearch管理页面并输入elasticsearch的地址,能连接上elasticsearch说明安装成功:
    docker方式安装elasticsearch-head连接es

    九、kibana部署

    1.拉取kibana镜像

    拉取kibana:7.6.0镜像,版本与elasticsearch一致:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker pull kibana:7.6.0
    7.6.0: Pulling from library/kibana
    ab5ef0e58194: Already exists
    3a92ac72d982: Pull complete
    b3610a99415d: Pull complete
    2ea5080d6dc3: Pull complete
    ...
    Digest: sha256:71224955f60c9b71e633b332da41046891841b205e93763d845514c174287967
    Status: Downloaded newer image for kibana:7.6.0
    docker.io/library/kibana:7.6.0
    

    2.创建并运行kibana容器

    创建运行kibana容器的同时连接elasticsearch容器:

    [root@iZwz94v2sdd3v6zcczsu67Z ~]# docker run -d --name mykibana -p 5601:5601 --link myelasticsearch:elasticsearch kibana:7.6.0
    78dc9a1bddd81eceb4868d48d902679c3d931232cae8858928b5f342f70bf7af
    

    3.验证是否部署成功

    访问http://主机ip:5601,出现下图所示的kibana欢迎页面说明部署成功:
    kibana欢迎页面
    这里通过kibana验证一下之前elasticsearch的ik分词器是否安装成功,首先通过elasticsearch-head创建一个名为test的索引:
    创建test索引
    然后使用kibana的dev tools验证ik分词器是否安装成功,根据下面动图的测试过程和结果,说明kibana成功连接elasticsearch并且elasticsearch的ik分词器安装成功:
    验证ik分词器是否安装成功

    cs