集成Java后端软件或工具的下载、安装、配置

JDK

首先,我们需要去oracle官网下载jdk,地址:Java Downloads | Oracle,选择对应的版本即可

​​

解释:32位选择x86,64位选择x64(jdk8之后没有32位的)。exe是应用程序版(一般选择它),zip是压缩版

点击下载,如果需要注册一个账号就注册后再下载

下载好了,双击它打开

接下来进入了安装的环节

点击下一步,选择开发工具,并禁用掉公共的JRE(因为开发工具里面有一个JRE,这个公用的可装可不装)

把它安装到你想安装的目录里去,点击下一步(不建议装c盘,不要有中文和空格)

然后一直点击下一步,直到完成

ps:高版本已经没有这些选项了,直接选安装路径,然后一直下一步就可以了

接下来我们需要配置jdk,

在这里解释一下为什么要配置jdk?

计算机查找机制:在cmd中启动一个应用程序,它会现在你当前所在的目录下寻找,如果没有就会去path里面找如果path里面没有就会报错(这个机制是对任何程序都适用的)

所以我们有两种解决方案:

1、cd到jdk的安装目录下的bin目录下面,再执行命令

2、在path里面去配置jdk的目录,让它能在任何地方被访问到

path:  用于记住程序路径,方便命令行窗口的任意目录位置启动程序(所以很多其他的程序也可以配置path,同样可以在命令行窗口打开)

JAVA_HOME: 告诉操作系统JDK的位置(其他的技术通过这个环境变量找到JDK)

右击此电脑 -> 属性 -> 高级系统设置 -> 环境变量

user的用户变量:只能当前用户访问       系统变量:所有的用户都可以访问(推荐)【二选一】

按照下面的格式写好,然后点击确定

 

然后找到path,双击打开

进去之后,点击右上角新建后,输入%JAVA_HOME%\bin   完成后点击确定 

写法比较

D:\language\jdk8\bin   这样写出来的位置是死的,后续版本号修改又要重新配置(不推荐)

%JAVA_HOME%\bin  这样写就能够动态搜索jdk位置,后续版本动了也不用改(推荐)

一直确认,直到全部点击就算配置完成

注意:

1. 新版本(jdk17)是不需要配置的,他自动就会给你配置好,但是像jdk8这样的老版本依然需要配置,所以仍然需要掌握。如果你要自己配就去path中把原来的删掉(名称叫javapath)

2. 新版本也只是配置了path,并没有配置JAVA_HOME

接下来需要检验一下jdk是否安装成功首先,先去你安装的jdk目录下面的bin目录下面看一下是否有javac.exe 和 java.exe

有的话(不要直接点,这两个不是图形化界面,点了只会闪一下),再win+r进入命令行界面,输入javac -version 和 java-version,如果出现下面版本能够查看就说明安装成功了

如果版本能够显示,就可以证明到jdk已经安装成功了

MySQL

我们先下载mysql,网页上输入MySQL :: MySQL Community Downloads

此时可以看到开始下载,下载完成后是一个msi结尾的文件

接下来就可以双击它开始安装

选择自定义安装方式

依次按照下面图片所示点击

然后依次点击:OK ---> Next ---> Execute,等加载条100%后 ---> Next ---> Next

这个界面不用动它,继续Next

到这里就算安装完成了

附录:mysql的目录

在mysql的bin目录下cmd一下看是否安装成功

如果看到上面的界面说明安装成功

接下来我们需要配置环境变量,按照下面图片操作执行即可

这样我们就能在任何地方都直接访问数据库了

MySQL完美卸载

1.关闭MySQL的服务

2.卸载旧版本

通过控制面板、geek、360之类的卸载,很简单,直接按照提示删即可

3.清理残余的数据和文件(就是把你安装的哪个目录检查一下看是否删掉)

4.清理注册表

win + r,输入regedit,下面是需要删除的路径

1:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\MySQL 服务目录删除
 
2:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL 服务目录删除
 
3:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 服务目录删除
 
4:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL 服务目录删除
 
5:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 服务目录删除
 
6:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL服务删除

注册表中的ControlSet001,ControlSet002,不一定是001和002,可能是ControlSet005、006之类(有就删,没有就不删)

此时MySQL就完全卸载了

Maven

本次下载安装以JDK17、IDEA为例,先下载Maven

1)在 Maven – Welcome to Apache Maven 官网上下载 Maven

​2)解压 apache-maven-3.9.3-bin.zip 这个文件到一个没有中文没有空格的目录,例如:d:\Software\Develop\maven-3.8.8

​3)把 Maven 配置到系统的环境变量中,它的配置方式类似于JDK的配置,我们需要定义一个名为 M2_HOME 的环境变量,它的值就是 Maven 解压目录

​4)然后把这个变量添加到 Path 路径中

5)在 cmd 窗口中输入如下的命令来查看是否安装成功,看到如下界面即安装成功!

mvn -v

接下来我们需要配置Maven

1)在 IDEA 中配置 Maven 环境,依次点击 File | Settings | Build, Execution, Deployment | Build Tools | Maven,按照下图进行配置完成即可。

2)修改 maven 安装目录下的 conf 目录中的 settings.xml 文件,在这个文件中配置本地仓库地址以及 JDK 版本

3)配置本地仓库地址

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>D:/Repository/ideaRepository</localRepository>

4)配置JDK版本

<profiles>	
    <profile>
        <id>jdk‐17</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>17</jdk>
        </activation>
        <properties>
            <maven.compiler.source>17</maven.compiler.source>
            <maven.compiler.target>17</maven.compiler.target>
            <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
        </properties>
    </profile>
</profiles>

5)配置镜像仓库地址(可以配置多个)

<mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
	 <!-- 阿里云 -->
	<mirror>
	  <id>aliyunmaven</id>
	  <mirrorOf>*</mirrorOf>
	  <name>aliyun maven</name>
	  <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
	<!-- 腾讯云 -->
	<mirror>
      <id>nexus-tencentyun</id>
      <mirrorOf>*</mirrorOf>
      <name>Nexus tencentyun</name>
      <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
    </mirror> 

	<!-- 华为云 -->
	<mirror>
      <id>huaweicloud</id>
      <mirrorOf>*</mirrorOf>
      <url>http://mirrors.huaweicloud.com/repository/maven/</url>
    </mirror> 

  </mirrors>

此时就完成Maven全部都流程了,可以正常去使用它了

Docker

首先我们来了解一下下面的几个问题

+ 什么是docker?

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。

  • 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。

  • 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题

+ Docker能解决什么?

Docker为了解决依赖的兼容问题的,采用了两个手段:

  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包

  • 将每个应用放到一个隔离容器去运行,避免互相干扰

+ docker架构?

Docker中有几个重要的概念:

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。

一切应用最终都是代码组成,都是硬盘中的一个个的字节形成的文件。只有运行时,才会加载到内存,形成进程。镜像,就是把一个应用在硬盘上的文件、及其运行环境、部分系统函数库文件一起打包形成的文件包。这个文件包是只读的。而容器呢,就是将这些文件中编写的程序、函数加载到内存中允许,形成进程,只不过要隔离起来。因此一个镜像可以启动多次,形成多个容器进程。

我们要使用Docker来操作镜像、容器,就必须要安装Docker。

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等

  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。

如图:

安装Docker

官方地址:Docker: Accelerated Container Application Development,在安装之前使用提供的 rhel-baseos-9.1-x86_64-dvd.iso 文件来以最小化方式安装 RedHat 系统。安装过程省略

1. 安装本地源

安装的 iso 文件中有非常多的工具,我们可以对其进行挂载,让开机就可以使用。要想挂载 iso 文件,需要做如下几步。

1)让虚拟机在开机时自动挂载

2)然后执行如下命令来进行挂载:

mount /dev/sr0 /mnt

3)编辑 fstab 文件自动挂载

vim /etc/fstab

 设置内容为:

/dev/cdrom /mnt iso9660 defaults 0 0

/dev/cdrom:就是要挂载的光盘所在路径

/mnt:挂载点

iso9660:文件格

 4)在 /etc/yum.repos.d 目录下新建一个 rpm.repo 的本地源。

[baseos]
name=baseos
baseurl=/mnt/BaseOS
gpgcheck=0
enabled=1
[baseos2]
name=baseos2
baseurl=/mnt/AppStream
gpgcheck=0
enabled=1
  • [baseos]:yum源的ID,必须唯一

  • name:yum源的描述信息

  • baseurl:yum源挂载点

  • enabled:是否启用,值为1表示启用,值为0表示禁用

  • gpgcheck:是否验证,值为0表示不验证,值为1表示验证

5)安装自动补全包:

dnf install net-tools bash-com*

这个工具包可以对命令、选项等自动补全。

2. 修改连接数

1)修改 /etc/security/limits.conf,在文件末尾中增加下面内容:

# 每个进程可以打开的文件数的限制
* soft nofile 65536
* hard nofile 65536

2)修改 /etc/sysctl.conf,在文件中增加下面内容:

# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360

   重新加载

sysctl -p

3. 配置网络

通过执行如下命令来配置网络:

nmcli connection modify ens33 ipv4.addresses 192.168.72.136/24 # 指定IP和子网掩码
nmcli connection modify ens33 ipv4.method manual # 手动模式
nmcli connection modify ens33 ipv4.dns 114.114.114.114 # 指定DNS
nmcli connection modify ens33 ipv4.gateway 192.168.72.2 # 指定网关
nmcli connection modify ens33 connection.autoconnect yes # 网络开机启动

nmcli connection up ens33 # 重启网卡

nmcli device show | grep DNS # 查看 DNS
nmcli device show | grep GATE # 查看网关

nmcli connection show # 查看网络配置所有信息

注意:ens33 是网卡名称,可通过 ifconfig 命令来查看你的网卡,然后做相应的修改。

另外,配置网络还可以在图形界面中去配置,输入如下命令进行图形界面:

nmtui

4. 安装 epel 源

# redhat 9
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

5. 设置root用户远程登录

如果在安装时没有勾选 root 用户可以远程登录选项,可以使用如下命令来修改 sshd_config 文件实现,执行如下命令:

vim /etc/ssh/sshd_config

在这个文件中添加如下内容:

permitrootlogin yes

保存后退出,然后执行如下命令来启动这个服务

systemctl restart sshd

然后再重新登录就可以了。

6. 关闭防火墙

在学习阶段为了使用方便,我们通常都会关闭防火墙。而在真正的生产中是不能把防火墙关闭的,而是把相应的端口号添加到防火墙中。关闭防火墙的命令如下:

systemctl disable firewalld

1. 查看防火墙状态

systemctl status firewalld.service

2. 停止防火墙

systemctl stop firewalld.service

3. 启动防火墙

systemctl start firewalld.service

4. 重启防火墙

systemctl restart firewalld.service

5. 禁用防火墙

systemctl disable firewalld.service

6. 启用防火墙

systemctl enable firewalld.service

首先停止防火墙,然后再禁用防火墙。  

7. 关闭Selinux

vim /etc/selinux/config

8. 正式安装

前面的都是准备工作,现在开始正式安装docker,官网地址:Install Docker Engine on RHEL (s390x) | Docker Docs

1)如果之前安装过旧版本的Docker,可以使用下面命令卸载旧的版本:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

如果yum报告未安装任何这些软件包,则无须理会。如果有安装过,则在 /var/lib/docker/ 的内容(包括图像、容器、卷和网络)将被保留。Docker Engine包现在被称为Docker ce。

2)安装仓库

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3)安装引擎

dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

4)启动测试

docker version

systemctl start docker

docker images

systemctl stop docker

基于Docker安装MySQL8.0.32

步骤01,从docker hub 中拉取 mysql.8.0.32 镜像到本地

docker pull mysql:8.0.32 # 拉取指定版本的
# docker pull mysql:latest 拉取最新

步骤02,创建挂载目录,目的是为了更的管理 MySQL 的数据和配置。

mkdir -p /usr/local/mysql/{conf,data,logs}

步骤03,创建一个简单的容器,目的是为了把容器中的配置文件复制到宿中的挂载目录中,以便于后续对 MySQL 进行配置。

# -e MYSQL_ROOT_PASSWORD=123456  指定 MySQL 的 root 用户登录密码
docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

步骤04,复制文件,我们把容器中的配置文件复制到宿主机的挂载目录中。

docker cp mysql01:/etc/my.cnf /usr/local/mysql/conf/
docker cp mysql01:/etc/mysql/conf.d /usr/local/mysql/conf/

步骤05,删除这个简单的容器

docker rm -f mysql01

步骤06,创建MySQL容器

docker run -d \
--restart=always \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/mysql/logs:/logs \
-v /usr/local/mysql/data:/var/lib/mysql \
--privileged \
mysql \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci

命令参数说明:

  • --restart=always 它表示数据库设为开机启动

  • --name mysql 指定容器的名称

  • -e MYSQL_ROOT_PASSWORD=123456 指定root用户的登录密码,这个环境变量必须指定,如果不指定容器不能成功创建

  • -e MYSQL_USER=openlab 创建一个叫 openlab 登录用户

  • -e MYSQL_PASSWORD=123456 指定 openlab 用户登录密码

  • -p 3306:3306 指定宿主机和容器的端口映射

  • -v /usr/local/mysql/conf:/etc/mysql/conf.d 挂载配置文件的数据卷目录

  • -v /usr/local/mysql/data:/var/lib/mysql 挂载数据库文件的目录

  • -v /usr/local/mysql/logs:/logs 挂载日志目录

  • -d mysql:8.0.32 指定镜像名称,并后台运行

  • --character-set-server=utf8mb4 指定数据库的编码格式

  • --collation-server=utf8mb4_unicode_ci 指定数据库校对编码格式

步骤07,进入到 mysql 容器内部,设置远程连接

docker exec -it mysql bash

 步骤08,执行如下命令来进入mysql命令行中

mysql -uroot -p123456

步骤09,然后给 root 用户设置远程连接权限。

-- 给远程访问用户授权
grant all privileges on *.* to 'root'@'%';
-- 刷新权限
flush privileges;

基于Docker安装Redis

1)拉取镜像

docker pull redis # 拉取最新
docker pull redis:6.2.7 # 拉取指定版本

2)挂载数据卷

我们在 /usr/local 目录下创建 redis/data,以及 conf 目录,以便于进行数据卷的挂载

mkdir -p /usr/local/redis/data
mkdir -p /usr/local/redis/conf

touch /usr/local/redis/conf/redis.conf

3)运行容器

docker run -p 6379:6379 \
--name redis \
--restart=always \
-v /usr/local/redis/data:/data \
-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
--appendonly yes  #--requirepass 000415

参数说明:

  • -d redis:表示后台启动redis

  • redis-server /etc/redis/redis.conf:以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录

  • –appendonly yes:开启redis 持久化

  • –requirepass 000415:设置密码 (如果你是通过docker 容器内部连接的话,可设可不设。但是如果想向外开放的话,一定要设置)

4)连接并进入容器

docker exec -it redis bash

此时就通了,可以在容器里面使用redis了,也可以用第三方工具

基于Docker安装RocketMQ 

1)拉取镜像

docker pull apache/rocketmq

2)创建Server数据挂载目录

创建数据卷的目录,即宿主机的目录。这些目录最终要于容器中的某些目录进行关联(挂载)

mkdir -p /usr/local/rocketmq/data/namesrv/logs /usr/local/rocketmq/data/namesrv/store

3)创建并运行Server容器

docker run -d \
--restart=always \
--name rmqnamesrv \
--privileged=true \
-p 9876:9876 \
-v /usr/local/rocketmq/data/namesrv/logs:/root/logs \
-v /usr/local/rocketmq/data/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \
apache/rocketmq \
sh mqnamesrv

4)创建Broker数据挂载目录

创建数据卷目录,便于进行数据挂载。挂载的目录是方便我们在宿主机上进行数据的操作而无须进入到容器内部。

mkdir -p /usr/local/rocketmq/data/broker/logs /usr/local/rocketmq/data/broker/store /usr/local/rocketmq/conf

5)创建配置文件

在 /usr/local/roketmq/conf 目录下编写一个 Broker的配置文件 broker.conf

vi /usr/local/rocketmq/conf/broker.conf

# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址
brokerIP1 = 192.168.72.130  # 改成你们自己的 IP 地址
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95

整个这个配置文件采用复制粘贴方式进行,唯一要修改的就是 brokerIP1 的值。其它的都不用变

6)创建并运行Broker容器

docker run -d  \
--restart=always \
--name rmqbroker \
--link rmqnamesrv:namesrv \
--privileged=true \
-p 10911:10911 \
-p 10912:10912 \
-p 10909:10909 \
-v /usr/local/rocketmq/data/broker/logs:/root/logs \
-v /usr/local/rocketmq/data/broker/store:/root/store \
-v /usr/local/rocketmq/conf/broker.conf:/home/rocketmq/rocketmq-4.9.4/conf/broker.conf \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" \
-e "MAX_POSSIBLE_HEAP=200000000" \
apache/rocketmq \
sh mqbroker -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf

 

7)安装控制台,先拉取控制台镜像

docker pull styletang/rocketmq-console-ng

8)构建rockermq-console容器

需要把192.168.72.130换成部署namesrv机器地址

docker run -d \
--restart=always \
--name rmqadmin \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.72.130:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8081:8080 \
--ulimit nofile=1024 \
styletang/rocketmq-console-ng:latest

9)打开浏览器来查看控制台 http://192.168.72.130:8081 【这里填自己的虚拟机端口号】

基于Docker安装ElasticSearch

1)创建网络

因为需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:

docker network create es-net

2)拉取镜像

docker pull elasticsearch:8.6.0

3)运行镜像

创建挂载点目录:

mkdir -p /usr/local/es/data /usr/local/es/config  /usr/local/es/plugins
chmod g+rwx /usr/local/es/data

创建基本容器:

docker run -d \
--name elasticsearch \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
elasticsearch:8.6.0

然后拷贝容器内配置目录到宿主机数据卷挂载目录:

docker cp elasticsearch:/usr/share/elasticsearch/config/ /usr/local/es/

拷贝完成后,就可以把这个容器停止了。

运行docker命令,部署单点es:

docker run -d \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/config:/usr/share/elasticsearch/config \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0

命令说明:

  • -e "cluster.name=es-docker-cluster":设置集群名称

  • -e "http.host=0.0.0.0":监听的地址,可以外网访问

  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小

  • -e "discovery.type=single-node":非集群模式

  • -v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录

  • -v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录

  • -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录

  • --privileged:授予逻辑卷访问权

  • --network es-net :加入一个名为es-net的网络中

  • -p 9200:9200:Web访问端口映射配置

  • -p 9300:9300:Java程序访问端口

4)修改配置文件

修改 /usr/local/es/config/elasticsearch.yml 文件,把文件中的 true 修改为 false

cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.port: 9200

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically      
# generated to configure Elasticsearch security features on 27-07-2023 02:02:36
#
# --------------------------------------------------------------------------------

# Enable security features
xpack.security.enabled: false

xpack.security.enrollment.enabled: false

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: false
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------

5)重启容器

docker restart es

然后在浏览器中输入:http://192.168.115.128:9200 即可看到elasticsearch的响应结果。

{
  "name" : "1344efa4c8cd",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "PTRx94ZwRWas2z3M7HYK_Q",
  "version" : {
    "number" : "8.6.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "f67ef2df40237445caa70e2fef79471cc608d70d",
    "build_date" : "2023-01-04T09:35:21.782467981Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.2",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

Docker安装Kibana

Kibana 是一个免费且开放的用户界面,能够让你对 Elasticsearch 数据进行可视化,并让你在 Elastic Stack 中进行导航。你可以进行各种操作,从跟踪查询负载,到理解请求如何流经你的整个应用,都能轻松完成。

1、拉取镜像:

docker pull kibana:8.6.0 # 版本一定要和es一致

2、创建挂载点目录

mkdir -p /usr/local/kibana/config  /usr/local/kibana/data
chmod g+rwx /usr/local/kibana/data

3、运行docker命令,部署kibana

docker run -d \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0

4、从容器中复制文件到宿主机

docker cp kibana:/usr/share/kibana/config/ /usr/local/kibana/

  复制完成后停止容器并删除

5、重新再创建容器

docker run -d \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \  # es指的是容器的名称
-v /usr/local/kibana/config:/usr/share/kibana/config \
-v /usr/local/kibana/data:/usr/share/kibana/data \
kibana:8.6.0

命令说明:

  • --network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中

  • -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch

  • -p 5601:5601:端口映射配置

kibana启动一般比较慢,需要多等待一会,可以通过命令:

docker logs -f kibana

 查看运行日志,当查看到下面的日志,说明成功:

此时,在浏览器输入地址访问:http://192.168.72.130:5601,即可看到结果

Docker安装IK分词器

1)挂载数据卷目录

安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:

docker volume inspect es-plugins

显示结果:

[
    {
        "CreatedAt": "2022-05-06T10:06:34+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
        "Name": "es-plugins",
        "Options": null,
        "Scope": "local"
    }
]

说明plugins目录被挂载到了: /var/lib/docker/volumes/es-plugins/_data 这个目录中。

2)解压缩分词器安装包

下面我们需要把课前资料中的ik分词器解压缩,重命名为ik

然后上传到es容器的插件数据卷中,也就是/var/lib/docker/volumes/es-plugins/_data

然后重启容器

# 重启容器
docker restart es
# 查看es日志
docker logs -f es

最后测试

IK 分词器包含两种模式:

  • ik_smart:最少切分

  • ik_max_word :最细切分

  • 30
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值