1. docker search elasticsearch
2.下载官方镜像(OFFICIAL是指官方镜像)
docker pull docker.io/elasticsearch
3.创建挂载文件的路径
mkdir -p /data/elasticsearch/datadir
mkdir -p /data/elasticsearch/conf
touch /data/elasticsearch/conf/elasticsearch.yml
4.配置elasticsearch.yml
vi /data/elasticsearch/conf/elasticsearch.yml
#集群名
cluster.name: escluster
#节点名
node.name: node-111
#设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
#指绑定这台机器的任何一个ip
network.bind_host: 0.0.0.0
#设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,
#值必须是个真实的ip地址
network.publish_host: X.X.X.X
#设置对外服务的http端口,默认为9200
http.port: 9200
#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300
#是否允许跨域REST请求
http.cors.enabled: true
#允许 REST 请求来自何处
http.cors.allow-origin: "*"
#节点角色设置
node.master: true
node.data: true
#有成为主节点资格的节点列表
discovery.zen.ping.unicast.hosts: ["X.X.X.X:9300"]
#集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1)
# (totalnumber of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 1
5.创建镜像
docker run --name es9200 -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /data/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /data/elasticsearch/datadir/:/usr/share/elasticsearch/data elasticsearch
报错:
解决办法:
(1)切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf
(2)添加下面配置
vm.max_map_count=655300
(3)并执行命令
sysctl -p
(4)重新启动elasticsearch,即可启动成功。
查看vm.max_map_count是否设置成功:
cat /proc/sys/vm/max_map_count