[[docker]] == Running Kibana on Docker Docker images for Kibana are available from the Elastic Docker registry. The images are shipped with https://www.elastic.co/products/x-pack[X-Pack] installed. NOTE: https://www.elastic.co/guide/en/x-pack/current/index.html[X-Pack] is pre-installed in this image. With X-Pack installed, Kibana expects to connect to an Elasticsearch cluster that is also runnning X-Pack. === Pulling the image Obtaining Kibana for Docker is as simple as issuing a +docker pull+ command against the Elastic Docker registry. ifeval::["{release-state}"=="unreleased"] However, version {version} of Kibana has not yet been released, so no Docker image is currently available for this version. endif::[] ifeval::["{release-state}"!="unreleased"] The Docker image for Kibana v{version} can be retrieved with the following command: ["source","sh",subs="attributes"] -------------------------------------------- docker pull {docker-image} -------------------------------------------- endif::[] === Configuring Kibana on Docker The Docker image provides several methods for configuring Kibana. The conventional approach is to provide a `kibana.yml` file as described in <>, but it's also possible to use environment variables to define settings. ==== Bind-mounted configuration One way to configure Kibana on Docker is to provide `kibana.yml` via bind-mounting. With +docker-compose+, the bind-mount can be specified like this: ["source","yaml",subs="attributes"] -------------------------------------------- services: kibana: image: {docker-image} volumes: - ./kibana.yml:/usr/share/kibana/config/kibana.yml -------------------------------------------- ==== Environment variable configuration Under Docker, Kibana can be configured via environment variables. The following mappings are available: .Docker Environment Variables [horizontal] **Environment Variable**:: **Kibana Setting** `ELASTICSEARCH_CUSTOMHEADERS`:: `elasticsearch.customHeaders` `ELASTICSEARCH_PASSWORD`:: `elasticsearch.password` `ELASTICSEARCH_PINGTIMEOUT`:: `elasticsearch.pingTimeout` `ELASTICSEARCH_PRESERVEHOST`:: `elasticsearch.preserveHost` `ELASTICSEARCH_REQUESTHEADERSWHITELIST`:: `elasticsearch.requestHeadersWhitelist` `ELASTICSEARCH_REQUESTTIMEOUT`:: `elasticsearch.requestTimeout` `ELASTICSEARCH_SHARDTIMEOUT`:: `elasticsearch.shardTimeout` `ELASTICSEARCH_SSL_CA`:: `elasticsearch.ssl.ca` `ELASTICSEARCH_SSL_CERT`:: `elasticsearch.ssl.cert` `ELASTICSEARCH_SSL_KEY`:: `elasticsearch.ssl.key` `ELASTICSEARCH_SSL_VERIFY`:: `elasticsearch.ssl.verify` `ELASTICSEARCH_STARTUPTIMEOUT`:: `elasticsearch.startupTimeout` `ELASTICSEARCH_URL`:: `elasticsearch.url` `ELASTICSEARCH_USERNAME`:: `elasticsearch.username` `KIBANA_DEFAULTAPPID`:: `kibana.defaultAppId` `KIBANA_INDEX`:: `kibana.index` `LOGGING_DEST`:: `logging.dest` `LOGGING_QUIET`:: `logging.quiet` `LOGGING_SILENT`:: `logging.silent` `LOGGING_VERBOSE`:: `logging.verbose` `OPS_INTERVAL`:: `ops.interval` `PID_FILE`:: `pid.file` `SERVER_BASEPATH`:: `server.basePath` `SERVER_HOST`:: `server.host` `SERVER_MAXPAYLOADBYTES`:: `server.maxPayloadBytes` `SERVER_NAME`:: `server.name` `SERVER_PORT`:: `server.port` `SERVER_SSL_CERT`:: `server.ssl.cert` `SERVER_SSL_KEY`:: `server.ssl.key` These variables can be set with +docker-compose+ like this: ["source","yaml",subs="attributes"] ---------------------------------------------------------- services: kibana: image: {docker-image} environment: SERVER_NAME: kibana.example.org ELASTICSEARCH_URL: http://elasticsearch.example.org ---------------------------------------------------------- Environment variables take precedence over settings configured in `kibana.yml`. ==== Docker defaults The following settings have different default values when using the Docker image: [horizontal] `server.host`:: `"0"` `elasticsearch.url`:: `http://elasticsearch:9200` `elasticsearch.username`:: `elastic` `elasticsearch.password`:: `changeme`