docker部署
- 1.Docker
- 2.mysql5.7
- 3.Redis
- 4.ES&Kibana&IK分词器
1.Docker
Docker 安装官方文档:https://docs.docker.com/install/linux/docker-ce/centos/
1.卸载之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装 Docker-CE
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3.设置 docker repo 的 yum 位置
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4.安装 docker,以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io
5.启动docker
sudo systemctl start docker
6.设置docker开机自启动
sudo systemctl enable docker
7.配置 docker 镜像加速,镜像加速地址需要在阿里云中获得
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]} EOF
sudo systemctl daemon-reload
sudo systemctl restart docke
2.mysql5.7
1.下载镜像文件
docker pull mysql:5.7
2.启动
参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
3.配置mysql
解释:
skip-name-resolve:跳过域名解析
vi /mydata/mysql/conf/my.cnf
# 粘贴以下内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
3.Redis
1.拉取redis,版本自己选,默认最新版
docker pull redis
2.启动redis
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
4.ES&Kibana&IK分词器
1.docker拉取elasticsearch和kibana
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
2.创建挂载目录
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
3.允许任何主机访问
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
4.保证权限
chmod -R 777 /mydata/elasticsearch/
5.运行es
特别注意:-e ES_JAVA_OPTS=“-Xms64m -Xmx512m” \ 测试环境下,设置 ES 的初始内存和最大内存,否则导致过大启动不了ES.
端口含义:9200 es端口;9300 es集群通讯端口
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
-d elasticsearch:7.4.2
6.运行Kibana
特别注明:kibana使用时不能翻墙!!不能翻墙!!不能翻墙!!血的教训
xx.xx.xx.xx需要改为自己电脑的IP,表示访问kibana的5601端口就会得到kibana的可视化界面,然后向kibana可视化界面发送请求,就会发到es的xx.xx.xx.xx:9200处。
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://xx.xx.xx.xx:9200 \
-p 5601:5601 -d kibana:7.4.2
7.下载ik分词器
先进入es的插件挂载文件,新建个ik文件夹,如果是跟着做的朋友,复制命令即可,然后通过wget下载ik分词器,解压
注意:ik分词器的版本要和es对应,es kibana ik分词器,这三个的版本都需要是一致的。
mkdir /mydata/elasticsearch/plugins/ik
cd /mydata/elasticsearch/plugins/ik
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
unzip elasticsearch-analysis-ik-7.4.2.zip
8.验证ik分词器是否安装成功
通过docker命令进入es容器内部,85cbfe5ce9a5 是容器ID,需要自行更改。再在bin中执行elasticsearch-plugin list命令,输出ik表示安装成功
docker exec -it 85cbfe5ce9a5 /bin/bash
/usr/share/elasticsearch/bin/elasticsearch-plugin list
安装成功截图:
退出es容器,重启elasticsearch即可使用ik分词器。
exit
docker restart elasticsearch
9.kibana使用ik分词器
在kibana中运行这两段代码,分别基于ik_smart和ik_max_word,观察它们分词结果,是不一样的。前者尽可能少分词,后者尽可能多分词。
POST _analyze
{
"analyzer": "ik_smart",
"text": "我是中国人"
}
POST _analyze
{
"analyzer": "ik_max_word",
"text": "我是中国人"
}