本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
该容器镜像包含Nginx 1.16服务器和反向代理服务器,适用于OpenShift和通用场景。用户可选择基于RHEL、CentOS或Fedora的镜像版本:RHEL镜像可在Red Hat容器目录获取,CentOS镜像在Quay.io,Fedora镜像在Fedora Registry。生成的镜像可使用podman运行。
注意:本文档示例中使用
podman命令,所有此类命令均可替换为docker,参数保持不变。
Nginx是一款HTTP、SMTP、POP3和IMAP协议的Web服务器及反向代理服务器,专注于高并发、高性能和低内存占用。本容器镜像提供nginx 1.16守护进程的容器化打包,可作为基于nginx 1.16 Web服务器的其他应用的基础镜像,并支持通过OpenShift的Source构建功能进行扩展。
以下示例假设使用rhel8/nginx-116镜像(通过OpenShift中的nginx:1.16镜像流标签可用)。构建简单test-app应用的步骤:
oc new-app nginx:1.16~[***] --context-dir=1.16/test/test-app/
访问应用:
$ oc get pods $ oc exec <pod> -- curl 127.0.0.1:8080
本镜像支持OpenShift的Source-to-Image(S2I)构建策略。S2I框架可将应用源代码与构建器镜像(如本nginx镜像)结合,生成可运行的应用镜像。
/usr/libexec/s2i/assemble:用于将应用源代码(HTML页面、配置文件等)组装到镜像中,放置到正确目录/usr/libexec/s2i/run:作为容器默认命令,启动nginx服务应用源代码应遵循以下结构:
./nginx.conf:主nginx配置文件./nginx-cfg/*.conf:需包含的nginx配置文件./nginx-default-cfg/*.conf:默认服务器块的配置片段./nginx-start/*.sh:nginx启动前执行的shell脚本./nginx-perl/*.pm:供perl_modules和perl_require指令使用的Perl模块./:nginx应用源代码(如HTML文件)相比S2I策略,Dockerfile提供更灵活的构建方式,适用于非OpenShift环境或需要自定义构建流程的场景。
podman pull rhel8/nginx-116
以示例应用([***]
git clone [***] nginx-container cd nginx-container/examples/1.16/
需完成以下任务:将应用源代码放入容器、移动配置文件到正确位置、设置默认命令。可通过两种方式实现:
创建Dockerfile:
FROM registry.access.redhat.com/ubi8/nginx-116 # 添加应用源代码 ADD test-app/nginx.conf "${NGINX_CONF_PATH}" ADD test-app/nginx-default-cfg/*.conf "${NGINX_DEFAULT_CONF_PATH}" ADD test-app/nginx-cfg/*.conf "${NGINX_CONFIGURATION_PATH}" ADD test-app/*.html . # 运行nginx(前台模式) CMD nginx -g "daemon off;"
创建Dockerfile:
FROM registry.access.redhat.com/ubi8/nginx-116 # 添加应用源代码到S2I脚本预期目录,并设置权限(非root运行) # 若使用不支持--chown选项的旧版docker,替换为: # USER 0 # ADD app-src /tmp/src # RUN chown -R 1001:0 /tmp/src # USER 1001 ADD --chown 1001:0 app-src /tmp/src # 执行assemble脚本组装应用 RUN /usr/libexec/s2i/assemble # 使用S2I run脚本启动服务 CMD /usr/libexec/s2i/run
podman build -t nginx-app .
podman run -d nginx-app
$ ls -lZ /wwwdata/html -rw-r--r--. 1 1001 1001 54321 1月 01 12:34 index.html -rw-r--r--. 1 1001 1001 5678 1月 01 12:34 page.html
将宿主机/wwwdata目录挂载为容器卷,启动nginx服务:
$ podman run -d --name nginx -p 8080:8080 -v /wwwdata:/opt/app-root/src:Z rhel8/nginx-116 nginx -g "daemon off;"
访问服务:
$ curl -Lk 127.0.0.1:8080
注意:挂载路径需为绝对路径(podman要求)。
NGINX_LOG_TO_VOLUME/var/log/nginx/。对于RHEL-7和CentOS-7镜像,该路径为/var/opt/rh/rh-nginx116/log/nginx/的符号链接。默认日志位置:访问日志输出到标准输出,错误日志输出到标准错误,可通过以下命令查看:
podman logs <container>
设置NGINX_LOG_TO_VOLUME后:日志写入/var/log/nginx/(RHEL-7/CentOS-7镜像为/var/opt/rh/rh-nginx116/log/nginx/),可通过卷挂载到宿主机查看。
本容器镜像的Dockerfile及源代码托管于:[***]Dockerfile,RHEL7对应Dockerfile.rhel7,RHEL8对应Dockerfile.rhel8,Fedora对应Dockerfile.fedora。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429