docker 安装
1)更新yum包
yum update
2)安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
3)设置yum源(阿里仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4)查看远程仓库中所有docker版本
yum list docker-ce --showduplicates | sort -r
5)安装docker
yum install docker-ce-20.10.1-3.el7 #安装指定版本(推荐安装此方式)
获得个人的 docker 加速链接地址,
#创建目录地址mkdir -p /etc/docker#创建 daemon 文件vi /etc/docker/daemon.json
在 daemon.json 文件中添加下面内容:
{"registry-mirrors": ["自己个人的docker 加速地址"]}
6)重新启动服务
systemctl daemon-reloadsystemctl restart docker
7)启动docker前,一定要关闭防火墙!!
# 关闭systemctl stop firewalld# 禁止开机启动防火墙systemctl disable firewalld
Docker 自动补全
yum install -y bash-completionsource /usr/share/bash-completion/bash_completionsource /usr/share/bash-completion/completions/docker
mginx安装
1)拉取安装包
docker pull nginx:1.14.1
2)创建容器并进行数据卷挂载
docker run --name nginx -v html:/usr/share/nginx/html -p 80:80 -d nginx:1.14.1
MySQL安装
1)拉取安装包
docker pull mysql:5.7
2)创建文件夹
mkdir -p /tmp/mysql/data // 存放生成的数据信息mkdir -p /tmp/mysql/conf // 存放共享的配置文件信息
3)在conf文件夹中放入配置文件
4)创建容器并直接挂载
docker run \--name mysql \-e MYSQL_ROOT_PASSWORD=root \-p 3306:3306 \-d \-v /tmp/mysql/data:/var/lib/mysql \-v /tmp/mysql/conf/:/etc/mysql/conf.d/my.cnf \--privileged \mysql:5.7
## 容器化部署#拉取镜像并创建启动容器docker pull mysql:5.7#详细方式docker run --name mysql --restart=always -p 3306:3306 --privileged=true -ti -e MYSQL_ROOT_PASSWORD=itcast142 -e MYSQL_USER=user -e MYSQL_PASSWORD=itcast142 -e TZ=Asia/Shanghai -v /usr/soft/mysql/docker/3306/config/:/etc/mysql/conf.d -v /usr/soft/mysql/docker/3306/data/:/var/lib/mysql -v /usr/soft/mysql/docker/3306/logs/:/var/log/mysql -d mysql:5.7#-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的远程登陆密码(如果是在容器中使用root登录的话,那么其密码为空)#进入容器docker exec -it mysql /bin/bash#登录容器内mysqlmysql -uroot -p#退出容器exit如果容器创建完容器,但mysql的时区不对,需要通过下面的配置来修改时区:#进入容器docker exec -it mysql5.7 bash#查看当前时区date -R#修改时区 方式一:cp /usr/share/zoneinfo/PRC /etc/localtime# 或者 方式二:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RabbitMQ
拉取包
docker pull rabbitmq:3.8-management
创建容器
docker run \
-e RABBITMQ_DEFAULT_USER=itcast \
-e RABBITMQ_DEFAULT_PASS=itcast142 \
-v mq-plugin:/plugins \
--name mq \
--hostname mq \
-p 15672:15672 \
-p 5672:5672 \
-d \
rabbitmq:3.8-management
Nacos安装
拉取
docker pull nacos/nacos-server:1.4.1
容器
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server:1.4.1
访问:47.101.41.230:8848/nacos
Redis
Jdk
1)创建目录
mkdir /tmp/dockerfile
2)进入目录
cd /tmp/dockerfile
3)创建容器和挂载
elasticsearch安装
1)拉取包
docker pull elasticsearch:7.10.1
2)创建挂载的对应文件夹
mkdir -p /usr/soft/elasticsearch/config
mkdir -p /usr/soft/elasticsearch/data
mkdir -p /usr/soft/elasticsearch/plugins
mkdir -p /usr/soft/elasticsearch/logs
3)配置中配置ip信息
#进入conf目录进行配置
cd //usr/soft/elasticsearch/config
echo "http.host: 0.0.0.0" > /usr/soft/elasticsearch/config/elasticsearch.yml
4)配置文件夹权限
chmod -R 775 /usr/soft/elasticsearch
5)启动容器并配置端口映射与目录映射
docker run -id --name elasticsearch \
-e "cluster.name=ly-elastic" \
-e "http.host=0.0.0.0" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-e http.cors.enabled=true \
-e http.cors.allow-origin="*" \
-e http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization \
-e http.cors.allow-credentials=true \
-v /usr/soft/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/soft/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/soft/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /usr/soft/elasticsearch/logs:/usr/share/elasticsearch/logs \
--privileged \
--hostname elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.10.1
命令解释:
- -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:授予逻辑卷访问权
- -p 9200:9200:端口映射配置
6)查看日志
docker logs -f elasticsearch
输入地址访问:47.101.41.230:9200
安装Kibana
1)下载Kibana7.10.1镜像
docker pull kibana:7.10.1
2)创建配置文件夹
mkdir -p /usr/soft/kibana/config
cd /usr/soft/kibana/config
3)创建并修改配置文件 kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
# 根据自己实际IP修改elasticsearch地址
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.94.129:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
4)启动容器
docker run -d \
--name=kibana \
-p 5601:5601 \
-v /usr/soft/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
kibana:7.10.1
其他的es客户端工具:
# Head 插件(了解)
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
输入地址访问:http://ip:5601
安装分词器插件:
IK分词器
1)进入目录,创建ik
cd /usr/soft/elasticsearch/plugins/
mkdir ik
cd ik/
2)导入离线包
3)解压
yum -y install unzip
unzip elasticsearch-analysis-ik-7.10.1.zip
4)重启容器
docker restart elasticsearch
设置不可拆分的词语
方法:
1) 进入cd /usr/soft/elasticsearch/plugins/conf,在IKAnalyzer.cfg.xml文件里面添加ext.dic
cd /usr/soft/elasticsearch/plugins/conf

2)创建ext.dic文件,把不需要拆分的词语添加进文档即可,重启es
docker restart elasticsearch
docker restart kibana
结果:
前:
后:
添加停用词:
1)IKAnalyzer.cfg.xml配置文件添加stopword.dic
然后在stopword.dic中添加”选举“两字
重启elasticsearch
docker restart elasticsearch
docker restart kibana
结果:
前:
后:
安装拼音分词器
1) 进入cd /usr/soft/elasticsearch/plugins/conf,新建pinyin文件夹
mkdir pinyin
cd pinyin
2)拼音分词器的文件导入本文件夹,并解压
unzip *
Sentinel
#下载Sentinel镜像(使用老师下发的虚拟机,无需下载镜像)
docker pull bladex/sentinel-dashboard:1.8.0
#创建sentinel容器
docker run --name sentinel -d -p 8858:8858 bladex/sentinel-dashboard:1.8.0
访问:http://47.101.41.230:8858/
账号:sentinel
密码:sentinel
YApi环境部署
MongoDB环境安装
拉取镜像
docker pull mongo:4.4
安装容器
docker run -d \
--name mongo-yapi \
-v /usr/soft/mongo/data/:/usr/soft/mongo/data \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=anoyi \
mongo:4.4
YApi环境安装
(1)拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi
(2)创建YApi的工作目录
#创建目录
mkdir -p /usr/soft/yapi/config
#进入到目录中
cd /usr/soft/yapi/config
在此目录中创建yapi的配置文件config.json,内容如下:
vim config.json
{
"port": "3000",
"adminAccount": "admin@anoyi.com",
"timeout":120000,
"db": {
"servername": "mongo",
"DATABASE": "yapi",
"port": 27017,
"user": "admin",
"pass": "anoyi",
"authSource": "admin"
}
}
在/usr/soft/yapi/config中执行下面命令来初始化yapi的数据索引库及管理员账号
docker run -it --rm \
--link mongo-yapi:mongo \
--entrypoint npm \
--workdir /yapi/vendors \
-v $PWD/config.json:/yapi/config.json \
registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
run install-server
初始化后便可以得到yapi的默认账号:账号:“admin@anoyi.com”,密码:”ymfe.org”,在/usr/soft/yapi/config在执行下面命令来创建容器
docker run -d \
--name yapi \
--link mongo-yapi:mongo \
--workdir /yapi/vendors \
-p 3000:3000 \
-v $PWD/config.json:/yapi/config.json \
registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
server/app.js
创建好后,便可以通过浏览器访问:http://47.101.41.230:3000
logStash
(1)下载镜像
#注意要与ES版本一致
docker pull logstash:7.10.1
(2)创建容器
#创建logstash本地挂载目录
mkdir -p /etc/logstash
#设置文件写入权限
chown 1000:1000 /etc/logstash/
#docker 创建容器
docker run -d --name logstash --privileged=true -v /etc/logstash/:/etc/logstash/pipeline/ logstash:7.10.1
(3)进入容器
docker exec -it logstash /bin/bash
(4)修改容器内配置文件
#进入config文件
cd config
#更改logstash.yml文件
vi logstash.yml
(5)将logstash.yml内容修改
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://47.101.41.230:9200" ]
(6)退出容器
#退出容器
exit
#重启容器
docker restart logstash
修改核心配置
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://47.101.41.230:3306/xc_content?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
# the user we wish to excute our statement as
jdbc_user => "root"
jdbc_password => itcast142
# the path to our downloaded jdbc driver
jdbc_driver_library => "/etc/logstash/pipeline/mysql-connector-java-8.0.11.jar"
# the name of the driver class for mysql
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
jdbc_default_timezone =>"Asia/Shanghai"
#要执行的sql文件
#statement_filepath => "/conf/course.sql"
record_last_run => "true"
use_column_value => "true"
tracking_column => "change_date"
#如果列是时间字段(比如updateTime),一定要指定这个类型为timestamp
tracking_column_type => "timestamp"
statement => "select *,0 AS learners,0 AS comment_num from course_pub where is_pub = 0 and change_date > :sql_last_value"
#定时配置 -- 每个一分钟会采集一次数据
schedule => "* * * * *"
last_run_metadata_path => "/etc/logstash/pipeline/course_pub.meta_date"
}
}
output {
elasticsearch {
#ES的ip地址和端口
hosts => "47.101.41.230:9200"
#hosts => ["localhost:9200","localhost:9202","localhost:9203"]
#ES索引库名称
index => "xc_course"
document_id => "%{id}"
template =>"/etc/logstash/pipeline/xc_course_template.json"
template_name =>"xc_course"
template_overwrite =>"true"
}
stdout {
#日志输出
codec => json_lines
}
}
测试:
修改容器内配置文件
#进入容器
docker exec -it logstash /bin/bash
#进入config文件夹
cd config
#更改pipelines.yml文件
vi pipelines.yml
path.config: "/etc/logstash/pipeline/mysql-es-xc.conf"
退出并且重启文件
#退出容器
exit
#重启容器
docker restart logstash
