使用Docker Compose搭建部署ElasticSearch的配置过程步骤如下:
1. 创建Docker Compose文件
首先,我们需要在本地创建一个Docker Compose文件来定义ElasticSearch容器的配置和依赖关系。以下是一个简单的例子:
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
container_name: elasticsearch
environment:
- node.name=elasticsearch
- discovery.type=single-node
ports:
- "9200:9200"
- "9300:9300"
networks:
- elastic
networks:
elastic:
driver: bridge
说明:
version
: 指定Docker Compose文件的版本号。services
: 定义了一个服务,其中包含了ElasticSearch容器的配置信息。image
: 指定使用的ElasticSearch的镜像。container_name
: 指定容器的名称。environment
: 配置环境变量,包括节点名称和发现方法(这里指定单节点)。ports
: 指定ElasticSearch服务运行时对应的端口号。networks
: 配置网络,ElasticSearch服务运行在指定的网络中。
2. 启动容器
在本地终端中,切换到Docker Compose文件所在目录,执行以下命令启动ElasticSearch容器:
docker-compose up -d
参数说明:
-d
: 后台启动容器。
3. 访问ElasticSearch服务
容器启动后,我们可以通过以下命令查看已经运行的容器:
docker ps
ElasticSearch服务对应的容器应该类似于以下输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29340ab11b37 docker.elastic.co/elasticsearch/elasticsearch:7.6.2 "/usr/local/bin/dock…" About an hour ago Up About an hour 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elasticsearch
我们可以直接通过localhost:9200
来访问ElasticSearch服务,以下是一个例子:
curl http://localhost:9200
输出结果类似于以下格式:
{
"name" : "elasticsearch",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "907y_OXQR6CnVj0qY2JGOA",
"version" : {
"number" : "7.6.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "b7e28a7",
"build_date" : "2020-04-21T17:48:08.943674Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
以上我们演示了Docker Compose搭建部署ElasticSearch的配置过程,现在我们来看看如何通过Docker的多阶段构建来构建一个包含Node.js和ElasticSearch的Docker镜像:
# 第一阶段:构建Node.js应用
FROM node:14.15.4 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# 第二阶段:构建ElasticSearch服务
FROM docker.elastic.co/elasticsearch/elasticsearch:7.6.2
COPY --from=builder /app/dist /app
RUN chown -R 1000:1000 /usr/share/elasticsearch/data
USER elasticsearch
CMD ["sh", "-c", "/usr/share/elasticsearch/bin/elasticsearch -Epath.data=/app/data"]
我们可以通过Docker Compose来配置ElasticSearch镜像的环境变量和启动命令来运行该镜像,这里给出一个完整的示例:
version: '3'
services:
elasticsearch:
image: my-elasticsearch
container_name: elasticsearch
build:
context: .
dockerfile: Dockerfile
environment:
- node.name=elasticsearch
- discovery.type=single-node
- cluster.routing.allocation.disk.threshold_enabled=false
- bootstrap.memory_lock=true # 内存锁定,提高内存利用率
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # 配置JVM内存
ports:
- "9200:9200"
- "9300:9300"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
elasticsearch-data:
networks:
elastic:
driver: bridge
以上示例中,我们指定了自己本地构建的镜像名为my-elasticsearch,然后配置了ElasticSearch的环境变量、端口映射、内存锁定等参数。我们可以使用以下命令启动容器:
docker-compose up -d
最后,访问http://localhost:9200
,即可使用ElasticSearch服务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Docker Compose搭建部署ElasticSearch的配置过程 - Python技术站