安装elasticsearch
# 这里后边需要写上版本号,可以根据实际需求更改为自己需要的版本
docker pull docker.io/elasticsearch:7.12.0
# 下载完成后通过这条命令查看本地镜像
docker images
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose
# 测试是否安装成功
$ docker-compose --version
docker-compose version 1.29.1, build 1110ad01
# 创建一个docker-compose.yml文件 也可以使用vi命令
vim docker-compose.yml
文件内容
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
我的最后还是启动了单节点,因为我的服务器内存实在太小了,
启动不了这几个集群
# 启动集群命令
docker-compose up
# 单节点命令
docker run --name my-elasticsearch -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -d docker.elastic.co/elasticsearch/elasticsearch:7.12.0
我启动单节点后,发现外网无法访问,而防火墙已开放端口,云服务器的安全组也已经开放
这个时候你可能是ip转发没有开启
# 这种属于暂时生效,如果想要永久生效还是需要更改配置文件
sysctl -w net.ipv4.ip_forward=1
如果想使IP转发永久生效,就请修改/etc/sysctl.conf ,在这里可以增加一条
# 如果已经有了就将它从0修改为1
net.ipv4.ip_forward = 1