利用Docker Compose可非常快搭建好开发所依赖的环境(如数据库,中间件),且可以很方便切换不同版本,大大降低学习新知识难度。本文带你快速搭建Elasticsearch的学习环境。
1. 环境准备
当然需要安装docker和docker compose。无论那类操作系统,网上安装文档非常多,这里不再赘述。
2. 准备docker-compose.yml文件
这里打算搭建简单的单机elasticsearch及kibana,也不涉及中文分词插件安装。新建一个文件夹docker-es,在里面新建文件,内容docker-compose.yml如下:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2-amd64
container_name: "elasticsearch"
ports:
- 9200:9200
- 9300:9300
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- cluster.name=tommy-es
- bootstrap.memory_lock=true
- discovery.type=single-node
volumes:
- D:/note-data/es-data:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:7.9.2
container_name: kibana
depends_on:
- elasticsearch
ports:
- 5601:5601
简要解释下,image用于指定镜像及其版本。container_name指定启动容器名称。ports映射端口。volumes挂载数据目录,避免启动后文档丢失。
当然我们启动之前需要在本地创建对应目录D:/note-data/es-data。
3. 运行安装
docker-compose.yml文件准备好后,进入文件所在目录,打开命令行执行下面命令:
docker-compose up -d
该命令会从docker.elastic.co拉取镜像,根据你的网速可能需要点时间(配置阿里仓库)。镜像下载后自动启动容器。
执行下面命令检查正在运行的容器:
docker-compose ps
CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
---|---|---|---|---|---|---|
dfac03d33bf3 | docker.elastic.co/kibana/kibana:7.9.2 | “/usr/local/bin/dumb…” | 6 hours ago | Up About an hour | 0.0.0.0:5601->5601/tcp | kibana |
b2be2b82556c | docker.elastic.co/elasticsearch/elasticsearch:7.9.2-amd64 | “/tini – /usr/local…” | 6 hours ago | Up About an hour | 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp | elasticsearch |
注意状态字段,两个容器都为up,如果不是则需要检查服务的日志,这里serviceName为elasticsearch或kibana:
docker-compose logs -f {serviceName}
好了,我们可以在浏览器中检验能否使用,访问kibana:
http://localhost:5601
访问elasticsearch:
http://localhost:9200
没问题吧,开发环境搭建好了。
4. 总结
利用Docker Compose可以快速搭建各种开发环境,尤其对于集群环境,无需受物理设备限制。