> For the complete documentation index, see [llms.txt](https://xn--6o0a585a.gitbook.io/devops/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xn--6o0a585a.gitbook.io/devops/docker/centos7/bu-shu-es.md).

# 部署ES

**1、安装docker-compose**

```
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```

```
sudo chmod +x /usr/local/bin/docker-compose
```

```
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
```

```
docker-compose --version
```

**2、elasticsearch**

```
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.0
```

```
vim /etc/sysctl.conf
​
vm.max_map_count=262144
​
vim /etc/security/limits.conf
​
soft nofile 65536
hard nofile 65536
```

**3、创建文件和目录**

```
mkdir /home/docker/elasticsearch -p
​
cd /home/docker/elasticsearch
​
mkdir config
​
vim elasticsearch.yml
​
cd /home/docker/elasticsearch
​
vim docker-compose.yml
​
mkdir data
```

**4、elasticsearch.yml**

```
cluster.name: "docker-cluster"
node.name: "search-node1"
network.host: 0.0.0.0
network.publish_host: 172.16.3.64
​
# minimum_master_nodes need to be explicitly set when bound on a public IP
# # set to 1 to allow single node clusters
# # Details: https://github.com/elastic/elasticsearch/pull/17288
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping.unicast.hosts: ["172.16.3.63:9300", "172.16.3.64:9300"]
```

**5、docker-compose.yml**

```
version: '2.2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.4.0
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    network_mode: host
    volumes:
      - /home/docker/elasticsearch/data:/usr/share/elasticsearch/data
      - /home/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
```

**6、在每个服务器的docker-compose.yml 同级目录下同时执行 docker-compose up –d 命令，根据服务器性能，大概等待1分钟左右，两个节点的集群就创建成功了，当然可以通过执行以下命令查看启动状态：**

```
docker-compose up –d
docker logs elasticsearch -f
```

**7、查看集群的所有节点：**

```
curl 172.16.232.107:9200/_cat/nodes?v
```
