官方Hyperscan Docker镜像,基于openEuler构建,提供高性能多正则表达式匹配能力。Hyperscan是遵循libpcre正则语法的独立C库,适用于需要高效处理多正则表达式匹配的场景,该镜像免费使用且无用户速率限制。
Hyperscan Docker镜像标签由Hyperscan版本和基础镜像版本组成,具体信息如下:
| 标签 | 当前版本 | 支持架构 |
|---|---|---|
| 5.4.2-oe2403sp1 | Hyperscan 5.4.2 on openEuler 24.03-LTS-SP1 | amd64, arm64 |
根据需求选择对应的{Tag}标签,从Docker仓库拉取镜像:
bashdocker pull openeuler/hyperscan:{Tag}
若启动容器时未指定命令,默认会自动运行单元测试:
bashdocker run -it --rm openeuler/hyperscan:{Tag}
通过交互式shell启动容器,可运行自定义代码:
bashdocker run -it --rm openeuler/hyperscan:{Tag} bash
创建测试文件
创建test.cpp文件,内容如下:
cpp#include <hs.h> #include <stdio.h> #include <stdlib.h> #include <string.h> // 匹配回调函数 static int eventHandler(unsigned int id, unsigned long long from, unsigned long long to, unsigned int flags, void *ctx) { printf("Match for pattern ID %u at offset %llu - %llu\n", id, from, to); return 0; // 继续扫描 } int main() { const char *pattern = "foo.*bar"; // 正则表达式模式 const char *input = "some foo stuff and then bar finally"; hs_database_t *database; hs_compile_error_t *compile_err; // 编译正则表达式 if (hs_compile(pattern, HS_FLAG_DOTALL, HS_MODE_BLOCK, NULL, &database, &compile_err) != HS_SUCCESS) { fprintf(stderr, "ERROR: Unable to compile pattern \"%s\": %s\n", pattern, compile_err->message); hs_free_compile_error(compile_err); return -1; } hs_scratch_t *scratch = NULL; // 分配临时空间 if (hs_alloc_scratch(database, &scratch) != HS_SUCCESS) { fprintf(stderr, "ERROR: Unable to allocate scratch space.\n"); hs_free_database(database); return -1; } // 扫描输入缓冲区 if (hs_scan(database, input, strlen(input), 0, scratch, eventHandler, NULL) != HS_SUCCESS) { fprintf(stderr, "ERROR: Unable to scan input buffer.\n"); hs_free_scratch(scratch); hs_free_database(database); return -1; } // 释放资源 hs_free_scratch(scratch); hs_free_database(database); return 0; }
编译程序
使用g++编译并链接Hyperscan库:
bashg++ test.cpp -o test \ -I/usr/local/include/hs \ -L/usr/local/lib \ -lhs
运行程序
bash$ ./test Match for pattern ID 0 at offset 0 - 27
如有疑问或需使用特殊功能,请在openeuler-docker-images提交issue或pull request。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务