安装Docker
# 先获取到docker的源到yum下
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo \ -o /etc/yum.repos.d/docker-ce.repo
#然后安装(ce-社区版,ee-企业版)
yum install -y docker-ce-24.0.0
#启动
systemctl start docker
#设置开机启动
systemctl enable docker
#查看docker的信息
docker info
#删除置顶容器(这里不是删除镜像,只是把运行或未运行的容器删除,注意:删除了再重启相当于格式化了喔)
docker rm -f mysql
#删除镜像镜像名字或者id
docker rmi redis
#进入某某容器
docker exec -it mysql bash
#修改文件权限为可编辑 表示所有文件
#用于挂载容器配置文件
chmod -R 777 /home/docker/
Docker启动容器自启
docker update redis --restart=always
#复制nginx配置文件到宿主机
docker cp nginx:/etc/nginx/conf.d /home/docker/nginx/conf/
安装Docker-compose
#将下载的文件移动到bin目录
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
#验证
docker-compose --version
在Docker安装nginx
#创建挂载文件夹
mkdir /home/docker/nginx/html
mkdir /home/docker/nginx/conf
mkdir /home/docker/nginx/conf/conf.d
#先启动容器
docker run -d --name nginx -p 80:80 nginx:1.23
#复制nginx配置文件到宿主机
docker cp nginx:/etc/nginx/conf.d /home/docker/nginx/conf/
docker cp nginx:/etc/nginx/nginx.conf /home/docker/nginx/conf/
docker cp nginx:/usr/share/nginx/html/ /home/docker/nginx/
#停止并移除容器
docker stop nginx
docker rm nginx
#创建nginx网络
docker network create nginx_network
#或者直接使用docker-compose
#将下载的文件移动到bin目录
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
#验证
docker-compose --version
#准备yml文件
version: '3.1'
services:
nginx:
image: nginx # 镜像名称
container_name: nginx # 容器名字
restart: always # 开机自动重启
ports: # 端口号绑定(宿主机:容器内)
- '80:80'
- '443:443'
volumes: # 目录映射(宿主机:容器内)
- ./conf/nginx.conf:/etc/nginx/nginx.conf###配置文件
- ./logs:/var/log/nginx ###这里面放置日志
- ./html:/html ###这里面放置项目目录
#使用 -f 参数是为了指定 docker-compose 命令使用的配置文件路径。如果你不在 docker-compose.yml 文件所在的目录下运行命令,或者你的配置文件名不是默认的 docker-compose.yml,那么你需要用 -f 来明确告诉 docker-compose 命令应该使用哪个文件。如果你的 docker-compose.yml 文件位于当前目录,并且命名为 docker-compose.yml,那么你可以省略 -f 参数,直接使用:
#启动你的yml文件
docker-compose -f ./docker-compose.yml up -d
#进入容器内部查看配置文件,确认映射成功:
docker exec -it nginx cat /etc/nginx/nginx.conf
#如果容器已经在运行,您可以重新加载 Nginx 配置:
docker exec -it nginx nginx -s reload
在Docker安装mysql
#未设置密码的,这个命令会启动失败
docker run -d --name mysql -p 3306:3306 mysql:8
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=153159 -p 3306:3306 mysql:8
#进入容器中
#链接mysql,然后进入到mysql数据库
#设置账号远程登陆
#mysql8以下的版本
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
#mysql8的加密方式不一样,需要执行这个命令,先查看root是的host是不是%,默认是localhost
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '153159';
#刷新
FLUSH PRIVILEGES;
#创建一个新的用户或更新现有用户,授予远程访问权限:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
在docker安装redis
#5、将/home/docker/redis.conf替换为您本地的Redis配置文件路径。
docker run -d -p 6379:6379 --name redis -v /home/docker/redis/conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data redis redis-server /etc/redis/redis.conf --appendonly yes
#1、创建本地映射目录用于挂载redis 配置文件和数据文件(便于以后修改配置文件)
mkdir -p /home/docker/redis/conf/
mkdir -p /home/docker/redis/data/
#2、修改文件权限为可编辑 表示所有文件
chmod -R 777 /home/docker/
#3、命令下载配置文件 redis.conf
#进入文件夹目录,进行下载
cd /home/docker/redis/conf
wget http://download.redis.io/redis-stable/redis.conf
#4、修改配置文件
bind 127.0.0.1 #注释掉这部分,使redis可以外部访问
requirepass 你的密码#给redis设置密码
appendonly yes#redis持久化 默认是no
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
protected-mode no #参数是为了禁止外网访问redis,如果启用了,则只能够通过localhost ip (127.0.0.1)访问Redis
daemonize yes #默认no 为不守护进程模式 (为yes时需要配置bind或者设置密码)
在Docker安装Elasticsearch
#先创建映射文件
# 创建node目录
mkdir -p /home/docker/es/data/node1/data
mkdir -p /home/docker/es/data/node2/data
mkdir -p /home/docker/es/data/node3/data
# 授权node目录
chmod 777 /home/docker/es/data/node1/data
chmod 777 /home/docker/es/data/node2/data
chmod 777 /home/docker/es/data/node3/data
#下载ik分词器
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.9/elasticsearch-analysis-ik-7.17.9.zip
#创建ik分词器文件,并把文件解压到ik文件夹
mkdir -p /home/docker/es/ik
# 修改sysctl.conf,解决 max virtual memory areas vm.max_map_count [65530] is too low 问题
vim /etc/sysctl.conf
# 在最后添加一行
vm.max_map_count=655300
# 使文件生效
sysctl -p /etc/sysctl.conf
#新增docker-compose.yml文件
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.9
container_name: es01
environment:
- node.name=es01
- cluster.name=es-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /home/docker/es/data/node1/data:/usr/share/elasticsearch/data
- /home/docker/es/ik:/usr/share/elasticsearch/plugins/ik
#- /home/docker/es/ik:/usr/share/elasticsearch/plugins
ports:
- 9201:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.9
container_name: es02
environment:
- node.name=es02
- cluster.name=es-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /home/docker/es/data/node2/data:/usr/share/elasticsearch/data
- /home/docker/es/ik:/usr/share/elasticsearch/plugins/ik
ports:
- 9202:9200
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.9
container_name: es03
environment:
- node.name=es03
- cluster.name=es-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /home/docker/es/data/node3/data:/usr/share/elasticsearch/data
- /home/docker/es/ik:/usr/share/elasticsearch/plugins/ik
ports:
- 9203:9200
networks:
- elastic
networks:
elastic:
driver: bridge
#启动
docker-compose up -d
#启动失败-查看日志(43005871e78c=es容器id)
docker logs 43005871e78c
#查看ip
ip addr show
#查看配置
curl 172.22.56.223:9201
#查看集群节点
curl -X GET "localhost:9201/_cat/nodes?v&pretty"
#安装Kibana,它是Elasticsearch的官方可视化工具
#查看索引全部数据
GET /t_points_flow/_search
{"query":{"match_all":{}}}
#查看索引全部数据,查询指定size
GET /t_points_flow/_search
{
"query": {
"match_all": {}
},
"size": 10000
}
#删除索引下所有数据
POST /t_points_flow/_delete_by_query
{
"query": {
"match_all": {}
}
}
#查看索引
GET /t_points_flow
#查看设置
GET /_cluster/settings
#创建索引
PUT /t_points_flow
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
},
"mappings": {
"properties": {
"id": { "type": "keyword" },
"truncate_points": { "type": "float" },
"points_flow_state": { "type": "integer" },
"user_id": { "type": "keyword" },
"source_user_id": { "type": "keyword" },
"flow_type": { "type": "integer" },
"current_points": { "type": "float" },
"points_amount": { "type": "float" },
"relate_type": { "type": "integer" },
"relate_id": { "type": "keyword" },
"operation_time": { "type": "date" },
"job_title": { "type": "text" },
"job_content_type": { "type": "integer" },
"job_type": { "type": "integer" },
"remark": { "type": "text" },
"exchange_rate": { "type": "float" },
"tenant_id": { "type": "keyword" },
"yl_appid": { "type": "keyword" },
"disabled": { "type": "integer" },
"create_time": { "type": "date" },
"create_user": { "type": "keyword" },
"create_user_nick_name": { "type": "text" },
"last_update_time": { "type": "date" },
"last_update_user": { "type": "keyword" },
"last_update_user_nick_name": { "type": "text" },
"data_perm_level": { "type": "keyword" }
}
}
}
在Docker安装Kibana
#创建映射文件夹
mkdir -p /home/docker/es/kibana
# 先把下面2个文件创建好放进去,然后授权node目录
chmod 777 /home/docker/es/kibana
#创建kibana.yml文件
server.name: kibana
# kibana的主机地址 0.0.0.0可表示监听所有IP
server.host: "0.0.0.0"
#
# 这边设置自己es的地址,
elasticsearch.hosts: [ "http://172.22.56.223:9201","http://172.22.56.223:9202","http://172.22.56.223:9203" ]
elasticsearch.username: 'kibana'
elasticsearch.password: '123456'
# # 显示登陆页面
xpack.monitoring.ui.container.elasticsearch.enabled: true
# 开启中文模式
i18n.locale: "zh-CN"
#创建docker-compose.yml文件
version: '3'
services:
kibana:
image: kibana:7.17.9
container_name: elk_kibana
restart: always
volumes:
- /home/docker/es/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
ports:
- 5601:5601
privileged: true #环境变量
#先进入/home/docker/es/kibana,然后启动
docker-compose up -d