arm32v6/nginx** 注意 **:这是Nginx官方镜像的arm32v6架构专用仓库。更多信息请参见官方镜像文档中的“非amd64架构?”和官方镜像FAQ中的“镜像源在Git中变更后如何处理?”。
-** 维护者 **:
Nginx Docker维护团队
-** 获取帮助 **:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
1.29.2-alpine, mainline-alpine, 1-alpine, 1.29-alpine, alpine, 1.29.2-alpine3.22, mainline-alpine3.22, 1-alpine3.22, 1.29-alpine3.22, alpine3.22
1.29.2-alpine-perl, mainline-alpine-perl, 1-alpine-perl, 1.29-alpine-perl, alpine-perl, 1.29.2-alpine3.22-perl, mainline-alpine3.22-perl, 1-alpine3.22-perl, 1.29-alpine3.22-perl, alpine3.22-perl
1.29.2-alpine-slim, mainline-alpine-slim, 1-alpine-slim, 1.29-alpine-slim, alpine-slim, 1.29.2-alpine3.22-slim, mainline-alpine3.22-slim, 1-alpine3.22-slim, 1.29-alpine3.22-slim, alpine3.22-slim
1.28.0-alpine, stable-alpine, 1.28-alpine, 1.28.0-alpine3.21, stable-alpine3.21, 1.28-alpine3.21
1.28.0-alpine-perl, stable-alpine-perl, 1.28-alpine-perl, 1.28.0-alpine3.21-perl, stable-alpine3.21-perl, 1.28-alpine3.21-perl
1.28.0-alpine-slim, stable-alpine-slim, 1.28-alpine-slim, 1.28.0-alpine3.21-slim, stable-alpine3.21-slim, 1.28-alpine3.21-slim
-** 提交问题 :
[*]
-** 支持的架构 **:(更多信息)
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x
-** 镜像 artifact 详情 **:
repo-info仓库的repos/nginx/目录(历史记录)
(镜像元数据、传输大小等)
-** 镜像更新 **:
official-images仓库的library/nginx标签
official-images仓库的library/nginx文件(历史记录)
-** 本描述来源 **:
docs仓库的nginx/目录(历史记录)
Nginx(发音为“engine-x”)是一款开源的反向代理服务器,支持HTTP、HTTPS、SMTP、POP3和IMAP协议,同时也是负载均衡器、HTTP缓存和Web服务器(源服务器)。Nginx项目以高并发、高性能和低内存占用为核心设计目标,采用2条款BSD类许可证授权,可运行于Linux、BSD变体、Mac OS X、Solaris、AIX、HP-UX及其他类Unix系统,另有针对Microsoft Windows的概念验证版本。
***.org/wiki/Nginx
!logo
console$ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d arm32v6/nginx
或者,可通过简单的Dockerfile生成包含所需内容的新镜像(比上述绑定挂载更简洁):
dockerfileFROM arm32v6/nginx COPY static-html-directory /usr/share/nginx/html
将此文件与静态内容目录(“static-html-directory”)放在同一目录,执行以下命令构建并启动容器:
console$ docker build -t some-content-nginx . $ docker run --name some-nginx -d some-content-nginx
console$ docker run --name some-nginx -d -p 8080:80 some-content-nginx
之后可通过浏览器访问http://localhost:8080或[***]。
可通过挂载配置文件或构建新镜像来自定义配置。若需修改默认配置,可先从运行的Nginx容器中获取默认配置:
console$ docker run --rm --entrypoint=cat arm32v6/nginx /etc/nginx/nginx.conf > /host/path/nginx.conf
然后在主机文件系统中编辑/host/path/nginx.conf。有关Nginx配置文件语法,参见官方文档(特别是入门指南)。
console$ docker run --name my-custom-nginx-container -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d arm32v6/nginx
dockerfileFROM arm32v6/nginx COPY nginx.conf /etc/nginx/nginx.conf
若在Dockerfile中添加自定义CMD,需确保包含-g daemon off;,使Nginx保持前台运行,以便Docker正确跟踪进程(否则容器会启动后立即停止)!
构建镜像:docker build -t custom-nginx .,运行:
console$ docker run --name my-custom-nginx-container -d custom-nginx
默认情况下,arm32v6/nginx不支持在大多数配置块中使用环境变量。但此镜像提供了一个函数,可在Nginx启动前提取环境变量。
以下是使用compose.yaml的示例:
yamlweb: image: arm32v6/nginx volumes: - ./templates:/etc/nginx/templates ports: - "8080:80" environment: - NGINX_HOST=foobar.com - NGINX_PORT=80
默认情况下,该函数读取/etc/nginx/templates/*.template中的模板文件,执行envsubst后将结果输出到/etc/nginx/conf.d。
若放置templates/default.conf.template文件,包含如下变量引用:
listen ${NGINX_PORT};
将输出到/etc/nginx/conf.d/default.conf:
listen 80;
可通过以下环境变量修改此行为:
NGINX_ENVSUBST_TEMPLATE_DIR
/etc/nginx/templates)NGINX_ENVSUBST_TEMPLATE_SUFFIX
.template)NGINX_ENVSUBST_OUTPUT_DIR
envsubst后输出结果的目录(默认:/etc/nginx/conf.d)/etc/nginx/templates/default.conf.template输出为/etc/nginx/conf.d/default.conf)要以只读模式运行,需将Nginx写入信息的位置挂载为Docker卷。默认配置要求对/var/cache/nginx和/var/run有写权限,可通过以下命令实现:
console$ docker run -d -p 80:80 --read-only -v $(pwd)/nginx-cache:/var/cache/nginx -v $(pwd)/nginx-pid:/var/run nginx
若高级配置需Nginx写入其他位置,添加相应卷挂载即可。
1.9.8及以上版本镜像包含nginx-debug二进制文件,在高日志级别下产生详细输出。可通过替换CMD使用:
console$ docker run --name my-nginx -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d arm32v6/nginx nginx-debug -g 'daemon off;'
compose.yaml中的类似配置:
yamlweb: image: arm32v6/nginx volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro command: [nginx-debug, '-g', 'daemon off;']
1.19.0及以上版本添加了详细的入口点输出,展示容器启动过程。可通过设置环境变量NGINX_ENTRYPOINT_QUIET_LOGS静默输出:
console$ docker run -d -e NGINX_ENTRYPOINT_QUIET_LOGS=1 arm32v6/nginx
1.17.0及以上版本,基于Alpine和Debian的镜像变体使用相同的用户和组ID(UID/GID=101)以降低工作进程权限:
console$ id uid=101(nginx) gid=101(nginx) groups=101(nginx)
可运行镜像为低权限任意UID/GID,但需修改Nginx配置使用该UID/GID可写的目录:
console$ docker run -d -v $PWD/nginx.conf:/etc/nginx/nginx.conf arm32v6/nginx
当前目录的nginx.conf需重新定义以下指令:
nginxpid /tmp/nginx.pid;
在http上下文中:
nginxhttp { client_body_temp_path /tmp/client_temp; proxy_temp_path /tmp/proxy_temp_path; fastcgi_temp_path /tmp/fastcgi_temp; uwsgi_temp_path /tmp/uwsgi_temp; scgi_temp_path /tmp/scgi_temp; ... }
也可使用官方Docker NGINX非特权镜像。
arm32v6/nginx镜像提供多种变体,适用于不同场景:
arm32v6/nginx:<version>默认镜像。若不确定需求,建议使用此版本。既可作为临时容器(挂载源码启动),也可作为基础镜像构建其他镜像。
arm32v6/nginx:<version>-alpine基于Alpine Linux(alpine官方镜像)。Alpine Linux比大多数发行版基础镜像小得多(~5MB),因此生成的镜像更精简。
当最终镜像大小为首要考虑因素时适用。注意其使用musl libc而非glibc,部分软件可能因libc依赖出现问题。
为最小化镜像大小,Alpine镜像通常不包含额外工具(如git、bash)。如需,可在Dockerfile中自行安装(参见alpine镜像说明的安装示例)。
arm32v6/nginx:<version>-perl / arm32v6/nginx:<version>-alpine-perl从arm32v6/nginx:1.13.0(主线版)和1.12.0(稳定版)开始,Perl模块从默认镜像中移除。若需使用Perl模块,可使用此变体。
arm32v6/nginx:<version>-slim不含默认标签中的常见包,仅包含运行Nginx所需的最小依赖。除非部署环境空间受限且仅运行此镜像,否则建议使用默认镜像。
查看此镜像包含软件的许可证信息。
与所有Docker镜像一样,本镜像可能包含其他软件,可能采用其他许可证(如基础发行版的Bash等,及主要软件的直接/间接依赖)。
部分自动检测的额外许可证信息可在repo-info仓库的nginx/目录中找到。
对于任何预构建镜像的使用,镜像用户有责任确保其使用符合所有包含软件的相关许可证。

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