amd64/nginx注意:这是nginx官方镜像的amd64架构专用仓库——更多信息,请参见官方镜像文档中的“非amd64架构?”和官方镜像FAQ中的“Git中的镜像源已更改,该怎么办?”。
维护者:
NGINX Docker维护团队
获取帮助的途径:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接1.29.2, mainline, 1, 1.29, latest, 1.29.2-trixie, mainline-trixie, 1-trixie, 1.29-trixie, trixie
1.29.2-perl, mainline-perl, 1-perl, 1.29-perl, perl, 1.29.2-trixie-perl, mainline-trixie-perl, 1-trixie-perl, 1.29-trixie-perl, trixie-perl
1.29.2-otel, mainline-otel, 1-otel, 1.29-otel, otel, 1.29.2-trixie-otel, mainline-trixie-otel, 1-trixie-otel, 1.29-trixie-otel, trixie-otel
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.29.2-alpine-otel, mainline-alpine-otel, 1-alpine-otel, 1.29-alpine-otel, alpine-otel, 1.29.2-alpine3.22-otel, mainline-alpine3.22-otel, 1-alpine3.22-otel, 1.29-alpine3.22-otel, alpine3.22-otel
1.28.0, stable, 1.28, 1.28.0-bookworm, stable-bookworm, 1.28-bookworm
1.28.0-perl, stable-perl, 1.28-perl, 1.28.0-bookworm-perl, stable-bookworm-perl, 1.28-bookworm-perl
1.28.0-otel, stable-otel, 1.28-otel, 1.28.0-bookworm-otel, stable-bookworm-otel, 1.28-bookworm-otel
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
1.28.0-alpine-otel, stable-alpine-otel, 1.28-alpine-otel, 1.28.0-alpine3.21-otel, stable-alpine3.21-otel, 1.28-alpine3.21-otel
问题反馈地址:
[***]
支持的架构:(更多信息)
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x
镜像工件详情:
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 amd64/nginx
或者,可以使用简单的Dockerfile生成包含必要内容的新镜像(这比上述绑定挂载更简洁):
dockerfileFROM amd64/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 amd64/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 amd64/nginx
dockerfileFROM amd64/nginx COPY nginx.conf /etc/nginx/nginx.conf
如果在Dockerfile中添加自定义CMD,请确保在CMD中包含-g daemon off;,以便nginx在前台运行,Docker能够正确跟踪进程(否则容器启动后会立即停止)!
然后使用docker build -t custom-nginx .构建镜像,并按以下方式运行:
console$ docker run --name my-custom-nginx-container -d custom-nginx
默认情况下,amd64/nginx不支持在大多数配置块中使用环境变量。但本镜像提供了一个功能,可在nginx启动前提取环境变量。
以下是使用compose.yaml的示例:
yamlweb: image: amd64/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
/etc/nginx/conf.d)/etc/nginx/templates/default.conf.template将输出为/etc/nginx/conf.d/default.conf。要以只读模式运行amd64/nginx,需要将Docker卷挂载到nginx写入信息的所有位置。默认amd64/nginx配置需要对/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:

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