-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Docker
If you are running Elasticsearch inside Docker, you need to make sure that Elasticsearch returns an IP address that is accessible from outside of the container. You can do that by specifying the network.publish_host
(or network.host
) setting, as stated in the Elasticsearch documentation:
The
network.publish_host
setting allows to control the host the node will publish itself within the cluster so other nodes will be able to connect to it. Of course, this can’t be theanyLocalAddress
, and by default, it will be the first non loopback address (if possible), or the local address.The
network.host
setting is a simple setting to automatically set bothnetwork.bind_host
andnetwork.publish_host
to the same host value.
If you don't configure your Elasticsearch inside Docker, the sniffing process won't work. You can either disable sniffing, or configure the network settings.
For convenience, I've created a repository that you can use as an example on how to use Elastic with Docker / Docker Compose.
The repository has a list of scripts that you can use to run Elasticsearch in e.g. Docker for Mac (other untested). E.g. Elastic version 5 comes with ./run-es.sh
which starts the current version of Elasticsearch 5.x. Please review these files and settings if you run into trouble with Docker and Elasticsearch.