从 ElasticSearch 文档中,我们拉取的 Docker Image 是预先安装 X-Pack 的,加上了 Security 和 Monitor,但有时我们并不想要,然而这并不容易禁用和删除。
修改 Dockerfile
好消息是,这个 Image 的 Dockerfile
是开源的,我们可以基于这个 Dockerfile 修改。
首先我们先 git clone elastic/elasticsearch-docker
,可以看到 repo 根目录下有一个 Makefile。
要执行这个构建,需要依赖 Python3、 virtualenv 和 jinja2。
接着:
1: 执行 make
,之后在 build
目录可以看到如下输出:
build |
2: Dockerfile 是我们要修改的东西,注释掉 X-Pack 安装的相关部分。
# Install x-pack and also the ingest-{agent,geoip} modules required for Filebeat |
3: 使用预先下载的 ElasticSearch tar 包加快 Docker build。
上面的目录树中, elasticsearch-5.4.3
是一个目录,从 ElasticSearch tar 包中解压出来的。
首先注释下载 tar 包的步骤:
# Download and extract defined ES version. busybox tar can't strip leading dir. |
替换为 COPY 命令:
COPY elasticsearch-5.4.3/ /usr/share/elasticsearch |
构建
docker build -f Dockerfile --tag niko_repo/elasticsearch:v5.4.3-niko . |
完整 Dockerfile 文件
如果不想自己去 make 这个构建,可以参考我 make 好的 Dockerfile:
# This Dockerfile was generated from templates/Dockerfile.j2 |