默认Docker已安装配置完成
安装ES
# 拉取镜像
docker pull elasticsearch:7.14.0
#创建挂载目录
mkdir -p /usr/local/docker/es
# 创建日志目录
mkdir -p /usr/local/docker/es/logs
# 授权
chmod 777 /usr/local/docker/es/logs
# 创建数据目录
mkdir -p /usr/local/docker/es/data
#授权
chmod 777 /usr/local/docker/es/data
创建一个临时容器, 用于复制 ES 配置文件
#起一个临时容器
docker run -d --name es_temp -e ES\_JAVA\_OPTS="-Xms512m -Xmx4096m" -p 9200:9200 -p 9300:9300 elasticsearch:7.14.0
#复制Es配置文件
docker cp es_temp:/usr/share/elasticsearch/config /usr/local/docker/es
#删除临时容器
docker rm es_temp
# 给权限
sudo chown -R 1000:1000 /usr/local/docker/es/config
sudo chmod -R 755 /usr/local/docker/es/config
修改 elasticsearch.yml 配置文件
由于已经挂载在宿主机, 修改宿主机即可 路径在 /usr/local/docker/es/config/elasticsearch.yml
直径全选粘贴即可
cluster.name: "docker-single"
network.host: 0.0.0.0
# 密码验证
xpack.security.enabled: true
创建容器
docker run --privileged -d --name es \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms4g -Xmx6g" \
--env TZ=Asia/Shanghai \
-v /usr/local/docker/es/config:/usr/share/elasticsearch/config \
-v /usr/local/docker/es/data:/usr/share/elasticsearch/data \
-v /usr/local/docker/es/logs:/usr/share/elasticsearch/logs \
-p 9201:9200 -p 9301:9300 \
elasticsearch:7.14.0
查看容器启动是否成功
请求9201端口
curl -X GET "http://localhost:9201/"
{
"error": {
"root_cause": [
{
"type": "security_exception",
"reason": "missing authentication credentials for REST request [/]"
}
]
}
}
由于开启了身份验证,需要设置初始密码
#进入容器
docker exec -it es /bin/bash
# 设置密码命令
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
需要设置很多个账号的密码
查看ES版本信息
curl -u elastic:YourStrongPasswordHere -X GET "http://localhost:9201/"
到这里ES 安装完成
安装 kibana
docker pull kibana:7.14.0
创建临时容器, 复制一下配置文件
docker run -d --name kibana \
-p 5602:5601 \
kibana:7.14.0
复制配置文件 (后续可自定义修改)
docker cp kibana:/usr/share/kibana/config /usr/local/docker/kibana
以下是 /usr/local/docker/kibana/config/kibana.yml 内容
server.shutdownTimeout: "5s"
monitoring.ui.container.elasticsearch.enabled: true
server.host: "0.0.0.0"
server.port: 5601
elasticsearch.hosts: ["http://47.100.204.199:9201"]
i18n.locale: "zh-CN"
# 如果需要启用认证,取消注释以下行
elasticsearch.username: "elastic"
elasticsearch.password: "password"
停止 删除容器
docker stop kibana
docker rm kibana
开启防火墙
如果你是阿里云机器. 宿主机开启 9201 防火墙不然容器访问不到宿主机 9201端口
(阿里云机器开通后, 也要在阿里云网页端开通,不然无法访问)
开启 5602 外部访问 kibana 网页
创建容器
docker run -d --name kibana \
-p 5602:5601 \
-e ELASTICSEARCH_HOSTS=http://47.100.204.166:9201 \
-e ELASTICSEARCH_USERNAME=elastic \
-e ELASTICSEARCH_PASSWORD="password" \
-e I18N_LOCALE=zh-CN \
--env TZ=Asia/Shanghai \
-v /usr/local/docker/kibana/config:/usr/share/kibana/config \
kibana:7.14.0
登录 kibana
http://127.0.0.1:5602/