使用 Docker 来开发 PHP,Laradock 系列 7:Elasticsearch

PHP

ELK 栈本地开发使用 Docker中,我已经演示过如何使用 docker 运行 elasticsearch(也可以运行 kibana 和 logstash )。所以基本上我们只是用 Laradock 做同样的事,但我将在这篇文章中给出更深入的介绍。


前提条件

在之前你已经运行过任何 laradock 服务/容器。如果没有,那就从这里开始。


运行 elasticsearch 容器

使用 CLI 进入 laradock 目录并执行:

docker-compose up -d elasticsearch

当你使用 docker-compose ps检查容器状态时,我希望结果与此类似:

           Name                          Command               State                                  Ports
-------------------------------------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up      2375/tcp, 2376/tcp
laradock_elasticsearch_1      /usr/local/bin/docker-entr ...   Up      0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up      9000/tcp
laradock_workspace_1          /sbin/my_init                    Up      0.0.0.0:2222->22/tcp, 0.0.0.0:8001->8000/tcp, 0.0.0.0:8080->8080/tcp

如果你使用docker stats检查容器使用的资源,你可能会得到与我相同的结果:

CONTAINER ID        NAME                          CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
e4ff663e300c        laradock_elasticsearch_1      0.34%               783.6MiB / 3.846GiB   19.90%              2.15kB / 0B         241MB / 422kB       55  
33f5234ad041        laradock_php-fpm_1            0.00%               9.578MiB / 3.846GiB   0.24%               1.01kB / 0B         13.1MB / 0B         3   
2d14b2b770aa        laradock_workspace_1          0.00%               8.832MiB / 3.846GiB   0.22%               2.81kB / 0B         778kB / 57.3kB      6   
94caba28a367        laradock_docker-in-docker_1   0.37%               20.11MiB / 3.846GiB   0.51%               1.8kB / 0B          22.2MB / 1.01MB     22

我在我的 Docker 桌面(Windows)中为基于 linux 的虚拟机分配了4GB内存。 Elasticsearch 占用了3.84GB可用内存的20%。这个容器占用了大量的资源,想象一下,如果你也运行kibanalogstash,它们具有相同的占比,那么占用的总资源将是60%。因此,请考虑将来在你的机器或生产服务器上的分配。

访问 Elasticsearch

如果您从外部 laradock 环境(如 postman 桌面应用程序或配置在 laradock 外部的任何 PHP 应用程序)访问服务(例如使用 WAMP 的 PHP应用程序),完整地址为 http://localhost:9200 。以下是使用 postman 的结果:

PHP

PHP

PHP

如果你在 laradock 环境中访问服务,例如在workspace容器中使用curl,完整的地址是elasticsearch:920。下面是在工作空间容器中使用 curl 的结果:

laradock@2d14b2b770aa:/var/www$ curl elasticsearch:9200
{
  "name" : "laradock-node",
  "cluster_name" : "laradock-cluster",
  "cluster_uuid" : "3juGQWtJTa2L7yYBKnfh-g",
  "version" : {
    "number" : "7.5.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "3ae9ac9a93c95bd0cdc054951cf95d88e1e18d96",
    "build_date" : "2019-12-16T22:57:37.835892Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"     
  },
  "tagline" : "You Know, for Search"
}
laradock@2d14b2b770aa:/var/www$

使用 Laravel 和 Elasticsearch

我将找到封装了 elasticsearch 和 laravel 的可用包,并在这里做了演示。


在 laradock 中体验 elasticsearch 的乐趣吧!


versions used:
 - laradock ELK_VERSION=7.5.1
 - Postman Desktop: Postman v7.21.1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://dev.to/dendihandian/elasticsearc...

译文地址:https://learnku.com/php/t/43484

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!