Install the appropriate Docker application for your operating system.
Make sure that Docker is allotted at least 4GiB of memory. In Docker Desktop, you configure resource usage on the Advanced tab in Preference (macOS) or Settings (Windows).
Obtaining Elasticsearch for Docker is as simple as issuing a docker pull
command against the Elastic Docker registry.
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.5.3
Now that you have the Elasticsearch Docker image, you can start a single-node or multi-node cluster.
If you’re starting a single-node Elasticsearch cluster in a Docker container, security will be automatically enabled and configured for you. When you start Elasticsearch for the first time, the following security configuration occurs automatically:
elasticsearch.yml
.elastic
user.You can then start Kibana and enter the enrollment token, which is valid for 30 minutes. This token automatically applies the security settings from your Elasticsearch cluster, authenticates to Elasticsearch with the kibana_system
user, and writes the security configuration to kibana.yml
.
The following commands start a single-node Elasticsearch cluster for development or testing.
Create a new docker network for Elasticsearch and Kibana
docker network create elastic
Start Elasticsearch in Docker. A password is generated for the elastic
user and output to the terminal, plus an enrollment token for enrolling Kibana.
docker run --name es01 --net elastic -p 9200:9200 -it docker.elastic.co/elasticsearch/elasticsearch:8.5.3
You might need to scroll back a bit in the terminal to view the password and enrollment token.
Copy the generated password and enrollment token and save them in a secure location. These values are shown only when you start Elasticsearch for the first time.
If you need to reset the password for the elastic
user or other built-in users, run the elasticsearch-reset-password
tool. This tool is available in the Elasticsearch /bin
directory of the Docker container. For example:
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password
Copy the http_ca.crt
security certificate from your Docker container to your local machine.
docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .
Open a new terminal and verify that you can connect to your Elasticsearch cluster by making an authenticated call, using the http_ca.crt
file that you copied from your Docker container. Enter the password for the elastic
user when prompted.
curl --cacert http_ca.crt -u elastic https://localhost:9200
When you start Elasticsearch for the first time, the installation process configures a single-node cluster by default. This process also generates an enrollment token and prints it to your terminal. If you want a node to join an existing cluster, start the new node with the generated enrollment token.
On your new node, start Elasticsearch and include the generated enrollment token.
docker run -e ENROLLMENT_TOKEN="<token>" --name es02 --net elastic -it docker.elastic.co/elasticsearch/elasticsearch:8.5.3
Elasticsearch is now configured to join the existing cluster.