OpenResty官方Docker镜像是基于NGINX和LuaJIT构建的动态Web平台,它整合了NGINX的高性能HTTP处理与反向代理能力及LuaJIT的高效即时编译脚本技术,适用于开发高并发、低延迟的动态Web应用、API网关、负载均衡系统等场景。该官方Docker镜像提供标准化部署环境,简化配置流程,确保跨平台一致性与可靠性,助力开发者快速集成并高效利用OpenResty的强大功能,实现灵活的Web服务开发与部署。
收藏数: 479
下载次数: 71128379
类型:

openresty/openrestydocker-openresty 是 OpenResty 的 Docker 化工具(GitHub 仓库)。Docker 是容器管理平台,而 OpenResty 是基于 Nginx 核心,集成大量第三方模块及依赖的全功能 Web 应用服务器。
建议将镜像固定到明确的标签以确保稳定性。以下是常见标签示例及说明:
| 镜像示例 | 说明 |
|---|---|
openresty/openresty:1.21.4.1-0-jammy | 基于源码构建的 Ubuntu Jammy 版本 |
openresty/openresty:1.21.4.1-0-focal | 基于源码构建的 Ubuntu Focal 版本 |
openresty/openresty:1.21.4.1-0-bullseye-fat | 基于上游包构建的 Debian Bullseye 版本 |
openresty/openresty:1.21.4.1-0-alpine | 基于源码构建的 Alpine 版本 |
openresty/openresty:1.21.4.1-0-alpine-apk | 基于上游包构建的 Alpine 版本 |
| 镜像示例 | 说明 |
|---|---|
openresty/openresty:jammy | Ubuntu Jammy 最新版 |
openresty/openresty:focal | Ubuntu Focal 最新版 |
openresty/openresty:alpine | Alpine 最新版 |
若无需自定义构建,可直接使用 Docker Hub 上的镜像。基础运行命令:
bashdocker run [选项] openresty/openresty:bullseye-fat
-p 映射端口,-v 挂载数据卷,-d 后台运行。access.log 和 error.log 分别链接到 /dev/stdout 和 /dev/stderr,适配 Docker 日志系统。若修改配置中的日志路径,需手动创建对应链接。client_body_temp_path 等临时目录位于 /var/run/openresty/,建议挂载该目录以避免容器内存储占用。容器默认包含 nginx.conf 配置,路径为 /usr/local/openresty/nginx/conf/nginx.conf。配置逻辑如下:
include /etc/nginx/conf.d/*.conf; 加载 /etc/nginx/conf.d/ 目录下的所有 .conf 文件,其中 default.conf 为默认虚拟主机配置。/etc/nginx/conf.d/,覆盖默认子配置:
bashdocker run -v /本地/custom/conf.d:/etc/nginx/conf.d openresty/openresty:alpine
nginx.conf 替换默认配置(适用于 Windows 镜像):
bashdocker run -v C:/本地/nginx.conf:C:/openresty/conf/nginx.conf openresty/openresty:windows
:Z 标签:
bashdocker run -v /本地/custom/conf.d:/etc/nginx/conf.d:Z openresty/openresty:alpine
OpenResty 包管理器 opm(路径 /usr/local/openresty/bin/opm)用于安装 OpenResty 模块,以下镜像默认包含 opm:alpine-fat、centos、bionic、bullseye-fat 等。
curl 和 perl):
bashapk add --no-cache curl perl
bullseye-fat 镜像,或在自定义构建中安装 openresty-opm 包(参考 示例 Dockerfile)。Lua 包管理器 LuaRocks 用于安装 Lua 模块,默认包含在 alpine-fat、centos、bionic 镜像中(alpine 镜像因追求精简未包含)。使用路径:/usr/local/openresty/luajit/bin/luarocks。
bashRUN /usr/local/openresty/luajit/bin/luarocks install <包名>
SSE4.2 优化兼容性:
Docker Hub 镜像默认启用 SSE4.2 优化,若运行在不支持 SSE4.2 的设备(如老旧服务器、嵌入式系统),会出现“无效指令”错误。需手动构建不含 SSE4.2 的镜像:
bashdocker build -f bionic/Dockerfile --build-arg "RESTY_LUAJIT_OPTIONS=--with-luajit-xcflags='-DLUAJIT_NUMMODE=2 -DLUAJIT_ENABLE_LUA52COMPAT -mno-sse4.2'" .
OpenSSL 版本兼容性:
确保 opm/LuaRocks 包与镜像的 OpenSSL 版本匹配(版本号需一致,如 1.1.1)。可通过镜像标签 resty_openssl_version 查看 OpenSSL 版本。
envsubst 工具:
除 alpine 和 windows 镜像外,其他镜像均包含 envsubst(用于配置文件环境变量替换)。
容器停止信号:
容器默认使用 SIGQUIT 信号停止 Nginx,以优雅关闭连接(Docker 默认 SIGTERM 会强制终止连接)。若配置中使用 UNIX 域套接字,需手动清理套接字文件(Nginx 已知问题 #753)。
镜像内置标签记录构建信息(如 OpenResty 版本、依赖库版本等),可通过 docker inspect 查看。例如:
bashdocker inspect openresty/openresty:1.17.8.1-0-bionic | jq '.[].Config.Labels'
| 标签名 | 说明 |
|---|---|
resty_version | OpenResty 版本 |
resty_openssl_version | OpenSSL 版本 |
resty_pcre_version | PCRE 版本 |
resty_luarocks_version | LuaRocks 版本(若包含) |
容器默认 CMD 为 ["openresty", "-g", "daemon off;"],确保 Nginx 前台运行。若 nginx.conf 中已配置 daemon off;,需显式指定命令:
bashdocker run [选项] openresty/openresty:bionic openresty
执行 resty 工具(需 perl 和 ncurses 依赖,alpine 镜像需额外安装):
bashdocker run [选项] openresty/openresty:bionic resty [脚本.lua]
可通过克隆仓库并指定 Dockerfile 构建自定义镜像,支持调整 OpenResty 版本、依赖库等参数。
bashgit clone [***] docker-openresty # 构建 Ubuntu Bionic 版本 docker build -t 自定义镜像名 -f bionic/Dockerfile .
| 参数名 | 默认值 | 说明 |
|---|---|---|
RESTY_VERSION | 1.21.4.1 | OpenResty 版本 |
RESTY_OPENSSL_VERSION | 1.1.1q | OpenSSL 版本 |
RESTY_PCRE_VERSION | 8.45 | PCRE 版本 |
RESTY_LUAROCKS_VERSION | 3.9.0 | LuaRocks 版本(若构建) |
使用中遇到问题可提交 GitHub Issue,或通过 Travis CI、Appveyor 查看构建状态。
以下是 openresty/openresty 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务