Elasticsearch官方在Docker Hub上已经有提供镜像,如果没有额外需求,执行下面这个命令就可以直接使用Elasticsearch官方提供的镜像:
docker run -d -p 9200 : 9200 --name= "es" elasticsearch: 2.3 . 5 |
要额外装一个Elasticsearch的head插件,方便调试,做了一个镜像,Dockerfile
FROM elasticsearch:2.3.5 RUN /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head EXPOSE 9200 |
进入Dockerfile所在的文件夹,执行以下命令:
docker build --tag=es_ezio . |
然后执行docker images 就能看到刚才创建的镜像了
上一步我们只是制作了一个Docker镜像,还没有创建Docker容器。关于Docker中镜像和容器的关系,可以类比为操作系统中的程序和进程,或者面向对象语言中的Class和Instance。我们必须从镜像创建出容器才能运行我们的服务(也就是Elasticsearch服务)。
第一次创建Docker容器,执行以下命令:
docker run -d -p 9200:9200 --name="es" es_ezio docker run -d -p 9201:9200 --name="es1" es_ezio |
Elasticsearch的默认端口是9200,我们把宿主环境9200映射到Docker容器中的9200端口,这样我们就可以直接访问宿主环境的9200端口就可以访问到Docker容器中的Elasticsearch服务了,同时我们把这个容器命名为es_ezio。
如果一切顺利,访问 http://127.0.0.1:9200/_plugin/head/