使用 Docker 来开发 PHP,Laradock 系列 7:Elasticsearch
在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%。这个容器占用了大量的资源,想象一下,如果你也运行kibana
和logstash
,它们具有相同的占比,那么占用的总资源将是60%。因此,请考虑将来在你的机器或生产服务器上的分配。
访问 Elasticsearch
如果您从外部 laradock 环境(如 postman 桌面应用程序或配置在 laradock 外部的任何 PHP 应用程序)访问服务(例如使用 WAMP 的 PHP应用程序),完整地址为 http://localhost:9200 。以下是使用 postman 的结果:
如果你在 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/elk-stack-loca... 不知道这篇文章有没翻译。