Docker的不足及应对方案
Docker是附生在Host上的容器服务,所以天生有些不足之处,好在大多也有应对方案。
Home of Little Jelly
Docker是附生在Host上的容器服务,所以天生有些不足之处,好在大多也有应对方案。
Docker使用久了,会占用大量空间,当磁盘空间不足时,就需要对空间进行回收。
以下是以Docker Desktop macOS版为例。
可以通过Docker Dashboard中的Resource来查看磁盘占用,也可以通过命令查看
ElasticSearch Mongo MySQL文档存储及检索对比。
测试环境:
1. 硬件配置:2核2G内存
2. 部署方式:Docker
3. CentOS 8.4
4. PHP 7.4.23
PHP中使用ElasticSearch。
composer安装elasticsearch
composer require elasticsearch/elasticsearch
MySQL全文检索解析器ngram自版本5.7.6可用。
ngram_token_size变量
`ngram_token_size`默认为2,表示按最小两个字来分词,比如”十六”,单个词如”六”是检索不出来的,需要将`ngram_token_size`设置为1。
MySQL8引入了一些新特性,也有一些改动,升级的时候要注意下。
Authentication 身份认证
身份认证时默认使用的是`caching_sha2_password`,而之前的版本是`mysql_native_password`,老的程序不兼容,比如MySQL管理工具`Sequel Pro`等。
PHP要使用XdevAPI扩展连接MySQL8,首先要安装MySQL8,而且需要为PHP安装配置`mysql_xdevapi`扩展,见之前的教程[PHP8安装MySQL xdevapi扩展](https://www.pimspeak.com/php8-mysql-xdevapi-extension.html)。
装好之后就可以连接了。
示例代码
Nginx PHP安全配置
1. 错误显示
配置php.ini
要在PHP中使用MySQL8的文档存储Document Store,需要配置`mysql_xdevapi`扩展。配置过程比较复杂,依赖颇多,详细步骤如下。
环境:CentOS8 + PHP8 + MySQL8
首先安装gcc
Docker下的CentOS8安装php7和php8版本,php-fpm都启动不起来,报错
php-fpm: error while loading shared libraries: libonig.so.5: cannot open shared object file: No such file or directory failed