
使⽤docker 搭建(ElasticSearch)集群
准备环境
在⽤生产环境中在 Docker 中运⽤行行 Elasticsearch 时,以下要求和建议适⽤用。 防⽤止 jvm 报
错:该 vm.max_map_count 内核设置必须⽤至少设置为 262144 ⽤用于⽤生产。 Linux 系统:
该 vm.max_map_count 设置应在以下位置永久设置 /etc/sysctl.conf
grep vm.max_map_count /etc/sysctl.conf vm.max_map_count=262144
#临时⽤生效
sysctl -w vm.max_map_count=262144 #永久⽤生效
echo vm.max_map_count=262144>>/etc/sysctl.conf
sysctl -p
macOS 系统:(Docker for Mac) 这个 vm.max_map_计数必须在 xyve 虚拟机中设置:
配置 docker⽤网络(可选)
为了了模拟我们的 es 是独⽤立服务器器,我们可以使⽤用 docker⽤网络 IP 指定隔离;docker 创
建容器器时默认采⽤用的 bridge⽤网络,⽤自⽤行行分配 IP,不不允许我们⽤自⽤己指定。⽤
而在实际部署中,我们需要指定容器器 IP,不不允许其⽤自 ⽤行行分配 IP,尤其是搭建集群时,
固定 IP 时必须的。所以我们可以创建⽤自⽤己的 bridge⽤网络:mynet,创建 容器器的时候指定
⽤网络为 mynet 并指定 IP 即可
#1.从命令⽤行行运⽤行行:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty #2.按
enter 键并使⽤用“sysctl”进⽤行行配置 vm.max_map_计数:
sysctl -w vm.max_map_count=262144
#3.退出 screen 会话, 使⽤用 Ctrl a d 健退出;
#查看⽤网络模式
docker network ls
#创建⽤一个新的 bridge⽤网络-mynet
docker network create --driver bridge --subnet=172.18.12.0/16 --
gateway=172.18.1.1 mynet
#查看⽤网络详情
docker network inspect mynet
#以后使⽤用--network=mynet --ip 172.18.12.x 指定 IP
创建 es 节点