docker 下的 elasticsearch 如何通过环境变量设置账号密码?

version: "3"
services:
  rabbitmq3-management:
    container_name: rabbitmq3-management
    image: rabbitmq:3-management
    hostname: rabbitmq3-management-master
    logging:
      driver: json-file
      options:
        max-size: "100m"
        max-file: "1"
    environment:
      - RABBITMQ_DEFAULT_USER=pon
      - RABBITMQ_DEFAULT_PASS=pon
    volumes:
      - "/home/bot/opt/docker-compose-public/rabbit/volumes:/var/lib/rabbitmq"
    ports:
      - "5672:5672"
      - "15672:15672"

使用 rabbit 的时候,设置一下环境变量就可以拥有账号密码。

但是 elasticsearch 貌似不行?

看了这个教程:给Elasticsearch和Kibana加上权限控制

感觉过于麻烦,有什么简易方式吗?

version: "3"
services:
  elk-elasticsearch:
    container_name: elk-elasticsearch
    image: elasticsearch:7.17.1
    restart: always
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g" # 限制 es 的内存大小,不然会吃掉 10GB+ 的 RAM
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # kibana 其实是支持中文的,只要在 /usr/share/kibana/config/kibana.yml 加一行 i18n.locale: "zh-CN"


  elk-kibana:
    container_name: elk-kibana
    image: kibana:7.17.1
    restart: always
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS=http://192.168.31.245:9200
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml # kibana 其实是支持中文的,只要在 /usr/share/kibana/config/kibana.yml 加一行 i18n.locale: "zh-CN"
阅读 3.9k
1 个回答

elastic官网 有说明可以配置环境变量:

  1. ELASTIC_PASSWORD=elastic的密码
  2. 或者 ELASTIC_PASSWORD_FILE=/run/secrets/bootstrapPassword.txt,指定存放密码的文件(对应文件需要 mount 上去)

里面还提供了一个 docker-compose.yml 的示例

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏