当前位置: 首页 > 面试题库 >

如何使用官方docker elasticsearch容器?

罗伟志
2023-03-14
问题内容

我有以下Dockerfile:

FROM docker.elastic.co/elasticsearch/elasticsearch:5.4.0
RUN elasticsearch
EXPOSE 80

我认为第三条线从未到达。

当我尝试通过以下方式从本地计算机访问dockercontainer时:172.17.0.2:9300

我什么也没得到,我想念什么?我想从本地主机访问elasticsearch。


问题答案:

我建议通过以下配置使用docker-compose(这使很多事情变得更加容易)。

配置启动了3个服务:弹性本身和用于开发的额外实用程序,例如kibana和head插件(如果不需要它们,可以将其省略)。

在同一目录中,您将需要三个文件:

  • docker-compose.yml
  • elasticsearch.yml
  • kibana.yml

具有以下内容:

docker-compose.yml

version: '2'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:5.4.0
    container_name: elasticsearch_540
    environment:
      - http.host=0.0.0.0
      - transport.host=0.0.0.0
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    volumes:
      - esdata:/usr/share/elasticsearch/data
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - 9200:9200
      - 9300:9300
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    mem_limit: 2g
    cap_add:
      - IPC_LOCK
  kibana:
    image: docker.elastic.co/kibana/kibana:5.4.0
    container_name: kibana_540
    environment:
      - SERVER_HOST=0.0.0.0
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
    ports:
      - 5601:5601
  headPlugin:
    image: mobz/elasticsearch-head:5
    container_name: head_540
    ports:
      - 9100:9100

volumes:
  esdata:
    driver: local

elasticsearch.yml

cluster.name: "chimeo-docker-cluster"
node.name: "chimeo-docker-single-node"
network.host: 0.0.0.0

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "Authorization"

kibana.yml

server.name: kibana
server.host: "0"
elasticsearch.url: http://elasticsearch:9200
elasticsearch.username: elastic
elasticsearch.password: changeme
xpack.monitoring.ui.container.elasticsearch.enabled: true

跑步

将以上三个文件放在同一目录中,并将该目录设置为当前工作目录(可能需要sudo,取决于您如何设置docker-compose):

docker-compose up

它会启动,你会看到日志从三个不同的服务: elasticsearch_540kibana_540head_540

初始启动后,您将为 9200 以下的http 和 9300 以下的tcp 提供弹性集群。如果集群已启动,请使用以下curl进行验证:

curl -u elastic:changeme http://localhost:9200/_cat/health

然后,您可以使用任何一个kibana(凭证为elastic / changeme)查看和使用集群:

http://localhost:5601/

或头插件:

http://localhost:9100/?base_uri=http://localhost:9200&auth_user=elastic&auth_password=changeme


 类似资料:
  • 我正在尝试设置一个 .NET Core 控制台应用程序,该应用程序使用硒 Web 驱动程序和 Docker 中的 Firefox,但我很难理解如何实际使用官方的硒泊坞窗映像。 目前,控制台应用程序只是一个尝试Google.com并成功报告的应用程序。 尝试创建新FirefoxDriver时,我始终收到以下错误消息: 预期的浏览器二进制位置,但无法在默认位置找到二进制,没有提供“moz:firefo

  • 我正在最新的官方MySQL docker容器中运行MySQL。主机是Windows10。 我正在使用“Docker-Compose up MySQL”启动以下服务: 我遇到的问题是,当MySQL数据库文件驻留在主机的卷上时,MySQL无法运行,并且我不断收到以下错误消息:“是否您已经有另一个mysqld服务器在套接字上运行:”/var/lib/MySQL/MySQL.sock“” 值得注意的是,我

  • 我尝试使用Spring启动执行器来观察我的简单应用程序,希望观察我办公室中的应用程序。 我的原始endpoint可以工作,但执行器的endpoint无法使用以下命令。 执行的命令: - 虽然我编译了spring-boot-starter-actuator-1 . 5 . 6 . release . jar,但似乎actuator的包没有包含在内。 你能告诉我出了什么问题吗? 我的环境: 在我的办公

  • 问题内容: 我想使用基于官方Docker Docker镜像的 扩展名构建PHP- FPM镜像,例如,使用以下Dockerfile:php:5.6-fpm。 文档说我可以通过这种方式安装扩展,手动安装扩展的依赖项: 在没有Docker的情况下,我使用安装了它。但是如何使用上面的方法安装它? 问题答案: 我发现了两种安装官方php-fpm Docker image的php- redis 扩展的方法。他

  • 本文向大家介绍详解RequireJs官方使用教程,包括了详解RequireJs官方使用教程的使用技巧和注意事项,需要的朋友参考一下 § 1.使用 § 1.1 加载 JavaScript 文件 RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤。可以用它来加速、优化代码,但其主要目的还是为了代码的模块化。 RequireJS以一个相对于baseUrl的地

  • 本文向大家介绍为何官方推荐使用axios而不用vue-resource?相关面试题,主要包含被问及为何官方推荐使用axios而不用vue-resource?时的应答技巧和注意事项,需要的朋友参考一下 1.vue-resources不再更新了,vue作者尤大推荐axios。 2.axios更加强大 3.axios就是一个基于ES6的Promise的网络请求库,其实说干净了就是一个打包好的XMLHtt