docker pull elasticsearch:7.4.1
docker pull kibana:7.4.1
拉取的镜像以下:node
建立一个网络,名字任意取,使得es和kibana在同一个网络,以便通讯。nginx
docker network create elknet
注:docker network create 使用说明docker
修改elasticsearch用户拥有的内存权限跨域
sysctl -w vm.max_map_count=262144 && grep vm.max_map_count /etc/sysctl.conf
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: 绑定一个卷
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
启动结果以下bash
docker run --name kibana --link elasticsearch:elasticsearch --net elknet -p 5601:5601 -d kibana:7.4.1
启动结果以下服务器
docker exec :在运行的容器中执行命令 语法 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] OPTIONS说明: -d :分离模式: 在后台运行 -i :即便没有附加也保持STDIN 打开 -t :分配一个伪终端
docker exec -it elasticsearch /bin/bash
vi /usr/share/elasticsearch/config/elasticsearch.yml # 加入跨域配置 http.cors.enabled: true http.cors.allow-origin: "*"
docker restart elasticsearch