Can es be deployed with docker?
es can be deployed using docker; deploying es clusters can be done directly using "docker-compose". "docker-compose" is a docker tool used to define and run complex applications, an application using docker containers , usually composed of multiple containers, using "docker-compose" eliminates the need to use shell scripts to start containers.
The operating environment of this tutorial: linux7.3 system, docker version 19.03, Dell G3 computer.
Can es be deployed with docker?
Deployment of es cluster can be done directly using docker-compose
Docker Compose is a Docker tool used to define and run complex applications. An application using Docker containers usually consists of multiple containers. Using Docker Compose no longer requires shell scripts to start containers.
Compose manages multiple Docker containers through a configuration file. In the configuration file, all containers are defined through services, and then the docker-compose script is used to start, stop and restart the application, and the services in the application. As well as all containers that rely on services, it is very suitable for scenarios where multiple containers are combined for development.
Expand knowledge
Introduction to ES cluster
Why a cluster is needed
Single-machine elasticsearch When doing data storage, you will inevitably face two problems: massive data storage problem and single point of failure problem.
Massive data storage problem: Logically split the index library into N shards and store them on multiple nodes
Single point failure problem: Split the shard data in different locations Node backup (replica)
ES cluster related concepts
Cluster (cluster): a group of nodes with a common cluster name.
Node: An Elasticearch instance in the cluster
Shard: The index can be split into different parts Storage is called sharding. In a cluster environment, different shards of an index can be split into different nodes
Solve the problem: the amount of data is too large and the single-point storage capacity is limited.
Here, we divide the data into 3 shards: shard0, shard1, shard2
Primary shard: Definition relative to replica shards.
Replica shard (Replica shard) Each primary shard can have one or more replicas, and the data is the same as the primary shard.
Data backup can ensure high availability, but one copy of each shard will double the number of nodes required, and the cost is too high!
In order to find a balance between high availability and cost, we can do this:
First shard the data and store it in different nodes
Then back up each shard and put it on the other node to complete mutual backup
This can greatly reduce the number of service nodes required, as shown in the figure, we use 3 shards, one copy of each shard is backed up as an example:
Build an ES cluster
Deploying an es cluster can be done directly using docker-compose, but your Linux virtual machine is required to have at least 4G of memory space
First write a docker-compose file with the following content:
version: '2.2' services: es01: image: elasticsearch:7.12.1 container_name: es01 environment: - node.name=es01 - cluster.name=es-docker-cluster - discovery.seed_hosts=es02,es03 - cluster.initial_master_nodes=es01,es02,es03 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - data01:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - elastic es02: image: elasticsearch:7.12.1 container_name: es02 environment: - node.name=es02 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es03 - cluster.initial_master_nodes=es01,es02,es03 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - data02:/usr/share/elasticsearch/data ports: - 9201:9200 networks: - elastic es03: image: elasticsearch:7.12.1 container_name: es03 environment: - node.name=es03 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es02 - cluster.initial_master_nodes=es01,es02,es03 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - data03:/usr/share/elasticsearch/data networks: - elastic ports: - 9202:9200 volumes: data01: driver: local data02: driver: local data03: driver: local networks: elastic: driver: bridge
File content introduction:
version: complse version
es01: node
image: mirror
container_name: container name
environment: environment variable
node.name: node name
cluster.name: cluster name, es automatically creates a cluster
discovery.seed_hosts: the other two Address, you can use the container name to interconnect
cluster.initial_master_nodes: initialized master node, can participate in the election
"ES_JAVA_OPTS=-Xms512m -Xmx512m": minimum and maximum JVM memory
volumes: Data volume address
ports: Port mapping
Recommended learning: "docker video tutorial"
The above is the detailed content of Can es be deployed with docker?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Four ways to exit Docker container: Use Ctrl D in the container terminal Enter exit command in the container terminal Use docker stop <container_name> Command Use docker kill <container_name> command in the host terminal (force exit)

Methods for copying files to external hosts in Docker: Use the docker cp command: Execute docker cp [Options] <Container Path> <Host Path>. Using data volumes: Create a directory on the host, and use the -v parameter to mount the directory into the container when creating the container to achieve bidirectional file synchronization.

How to restart the Docker container: get the container ID (docker ps); stop the container (docker stop <container_id>); start the container (docker start <container_id>); verify that the restart is successful (docker ps). Other methods: Docker Compose (docker-compose restart) or Docker API (see Docker documentation).

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

Docker container startup steps: Pull the container image: Run "docker pull [mirror name]". Create a container: Use "docker create [options] [mirror name] [commands and parameters]". Start the container: Execute "docker start [Container name or ID]". Check container status: Verify that the container is running with "docker ps".

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

The steps to update a Docker image are as follows: Pull the latest image tag New image Delete the old image for a specific tag (optional) Restart the container (if needed)

The methods to view Docker logs include: using the docker logs command, for example: docker logs CONTAINER_NAME Use the docker exec command to run /bin/sh and view the log file, for example: docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log Use the docker-compose logs command of Docker Compose, for example: docker-compose -f docker-com
