Docker 安装 Elasticsearch+kibana
1 下载镜像
docker pull elasticsearch:7.4.1
docker pull kibana:7.4.1
拉取的镜像如下:
2 创建network
创建一个网络,名字任意取,使得es和kibana在同一个网络,以便通信。
docker network create elknet
注:docker network create 使用说明
3 配置参数
修改elasticsearch用户拥有的内存权限
sysctl -w vm.max_map_count=262144 &&
grep vm.max_map_count /etc/sysctl.conf
4 启动创建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
• -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
• -d: 后台运行容器,并返回容器ID;
• -i: 以交互模式运行容器,通常与 -t 同时使用;
• -P: 随机端口映射,容器内部端口随机映射到主机的高端口
• -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
• -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
• --name="nginx-lb": 为容器指定一个名称;
• --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
• --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
• -h "mars": 指定容器的hostname;
• -e username="ritchie": 设置环境变量;
• --env-file=[]: 从指定文件读入环境变量;
• --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
• -m :设置容器使用内存最大值;
• --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
• --link=[]: 添加链接到另一个容器;
• --expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷
4.1 启动创建es
docker run -d --name=elasticsearch --net elknet -p 9200:9200 -p 9300:9300 -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 elasticsearch:7.4.1
启动结果如下
4.2 启动创建kibina
docker run --name kibana --link elasticsearch:elasticsearch --net elknet -p 5601:5601 -d kibana:7.4.1
启动结果如下
5 修改es配置
docker exec :在运行的容器中执行命令
语法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
5.1 进入容器
docker exec -it elasticsearch /bin/bash
5.2 进行配置
vi /usr/share/elasticsearch/config/elasticsearch.yml
# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
5.3 重启容器
docker restart elasticsearch