部署ElastSearch(Docker)
[Step 1] : 拉取 ElasticSearch 镜像
docker pull elasticsearch:7.14.0
[Step 2] : 创建网络➡️创建目录➡️启动容器➡️拷贝文件➡️授权文件➡️删除容器
# 创建网络
docker network create elastic
# 创建目录
mkdir -p /data/elasticsearch/{config,data,logs,plugins}
# 启动容器
docker run --name elasticsearch --restart=always \
-p 9200:9200 -p 9300:9300 \
--privileged --network elastic \
-e "discovery.type=single-node" \
-d elasticsearch:7.14.0
# 拷贝文件
docker cp -a elasticsearch:/usr/share/elasticsearch/config/ /data/elasticsearch
docker cp -a elasticsearch:/usr/share/elasticsearch/data/ /data/elasticsearch
docker cp -a elasticsearch:/usr/share/elasticsearch/logs/ /data/elasticsearch
docker cp -a elasticsearch:/usr/share/elasticsearch/plugins/ /data/elasticsearch
# 授权文件
chmod -R 777 /data/elasticsearch/{config,data,logs,plugins}
# 删除容器
docker rm -f elasticsearch
[Step 3] : 启动 ElasticSearch 容器
docker run --name elasticsearch --restart=always \
-p 9200:9200 -p 9300:9300 \
--privileged=true --network elastic \
-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \
-e "discovery.type=single-node" \
-e KEYSTORE_USERNAME=elastic \
-e KEYSTORE_PASSWORD=elastic \
-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /data/elasticsearch/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /data/elasticsearch/config:/usr/share/elasticsearch/config \
-d elasticsearch:7.14.0
相关参数解释 :
--name elasticsearch
: 给这个容器起名为elasticsearch
,方便管理和识别。--restart=always
: 设置容器的重启策略。当容器意外停止时,它将自动重启。-p 9200:9200 -p 9300:9300
: 端口映射, 9200 端口用于 HTTP 访问, 9300 端口用于节点间的内部通信--privileged=true
: 以特权模式运行容器,这赋予容器更多的系统权限,类似于主机上的 root 权限。--network elastic
: 将容器加入名为elastic
的 Docker 网络中,这可以方便容器之间的通信。-e ES_JAVA_OPTS="-Xms256m -Xmx512m"
: 用于配置 JVM 的最大最小堆内存。-e "discovery.type=single-node"
: 设置 Elasticsearch 为单节点模式-e KEYSTORE_USERNAME=elastic
和-e KEYSTORE_PASSWORD=elastic
: 设置 Elasticsearch 的认证用户名和密码为elastic
,这些变量将用于存储在密钥库中的凭据。-v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins
: 插件持久化-v /data/elasticsearch/data:/usr/share/elasticsearch/data
: 数据持久化-v /data/elasticsearch/logs:/usr/share/elasticsearch/logs
: 日志持久化-v /data/elasticsearch/config:/usr/share/elasticsearch/config
: 配置持久化-d
: 以后台模式(守护进程模式)运行容器。elasticsearch:7.14.0
: 指定使用elasticsearch:7.14.0
镜像启动容器。
[Step 4] : 访问 ElasticSearch 服务
# IP地址改成自己的
http://172.29.32.233:9200/
部署 Kibana ( Docker )
[Step 1] : 拉取 Kibana 镜像
docker pull kibana:7.14.0
[Step 2] : 创建目录 ➡️ 启动容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器
# 创建目录
mkdir -p /data/kibana/{conf,plugins}
# 启动容器
docker run --name kibana --restart=always \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e "I18N_LOCALE=zh-CN" \
-p 5601:5601 --network=elastic \
-d kibana:7.14.0
# 拷贝文件
docker cp kibana:/usr/share/kibana/config/kibana.yml /data/kibana/conf/
# 授权文件
chmod -R 777 /data/kibana/conf/kibana.yml /data/kibana/plugins
# 删除容器
docker rm -f kibana
[Step 3] : 启动 Kibana 容器
docker run --name kibana --restart=always \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e "I18N_LOCALE=zh-CN" \
-p 5601:5601 --network=elastic \
-v /data/kibana/plugins:/usr/share/kibana/plugins \
-v /data/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml \
-d kibana:7.14.0
相关参数解释 :
docker run
: 这是用来启动一个新的 Docker 容器的命令。--name kibana
: 通过给容器指定一个名称,可以更方便地管理和操作容器。--restart=always
: 无论容器因为什么原因停止,Docker 守护进程都会自动尝试重新启动它-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200
: 告诉 Kibana 连接到名为elasticsearch
的 Elasticsearch 服务,地址为http://elasticsearch:9200
。-e "I18N_LOCALE=zh-CN"
: 将 Kibana 的界面语言设置为简体中文(zh-CN
)。-p 5601:5601
: 将宿主机的5601
端口映射到容器的5601
端口。--network=elastic
: 将容器连接到名为elastic
的 Docker 网络。这使得 Kibana 可以通过 Docker 网络与elasticsearch
容器通信,而不需要通过宿主机网络。-v /data/kibana/plugins:/usr/share/kibana/plugins
: 插件持久化-v /data/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml
: 配置持久化-d kibana:7.14.0
以守护进程模式运行容器(后台运行),并指定使用kibana:7.14.0
镜像
[Step 4] : 访问 Kibana 控制台
# 换成自己的IP地址
http://172.29.32.233:5601/