
Web Client Application 镜像是一个预配置的容器化解决方案,用于快速部署前端Web应用(如单页应用SPA、静态网站等)。该镜像基于轻量级基础镜像构建,集成高效Web服务器,优化静态资源服务能力,支持多环境配置和灵活部署。
方式1:从镜像仓库拉取(推荐)
bashdocker pull [镜像仓库地址]/web-client-app:latest # 替换为实际镜像仓库地址
方式2:本地构建
若需基于源码构建,可使用以下Dockerfile(见4.6节“多阶段构建示例”)。
最简启动(默认配置)
bashdocker run -d -p 8080:80 --name web-client-app [镜像仓库地址]/web-client-app:latest
http://localhost:8080 即可打开应用。指定自定义端口
bashdocker run -d -p 3000:8080 \ # 宿主机3000端口映射到容器8080端口 -e PORT=8080 \ # 设置容器内Web服务器监听端口 --name web-client-app [镜像仓库地址]/web-client-app:latest
若需修改Nginx配置(如跨域规则、路由重写、SSL配置等),可通过挂载配置文件覆盖默认配置:
bashdocker run -d -p 8080:80 \ -v /本地路径/nginx.conf:/etc/nginx/conf.d/default.conf \ # 挂载自定义Nginx配置 --name web-client-app [镜像仓库地址]/web-client-app:latest
示例Nginx配置(nginx.conf):
nginxserver { listen 80; server_name localhost; # 静态资源目录(镜像内固定路径) root /usr/share/nginx/html; index index.html; # SPA路由支持(前端路由模式下避免404) location / { try_files $uri $uri/ /index.html; } # 跨域配置示例 location /api/ { proxy_pass http://backend-api:8080/; add_header 'Access-Control-Allow-Origin' '*'; } # 静态资源缓存策略 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires 1y; add_header Cache-Control "public, max-age=31536000"; } }
通过环境变量注入动态参数(如后端API地址、运行环境等),镜像启动时会自动替换前端资源中的占位符(需前端构建时预留变量名,如__API_BASE_URL__)。
常用环境变量
| 变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
PORT | Web服务器监听端口 | 80 | 8080 |
API_BASE_URL | 后端API基础地址 | http://localhost:3000 | https://api.example.com |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info | debug |
CACHE_CONTROL | 静态资源缓存策略 | "public, max-age=86400" | "no-cache" |
使用示例
bashdocker run -d -p 8080:80 \ -e API_BASE_URL=https://api.prod.example.com \ # 生产环境后端API地址 -e LOG_LEVEL=warn \ # 仅输出警告及以上日志 --name web-client-app [镜像仓库地址]/web-client-app:latest
创建 docker-compose.yml 文件,定义多服务协同部署(如前端+后端API):
yamlversion: '3.8' services: web-client: image: [镜像仓库地址]/web-client-app:latest ports: - "80:80" # 宿主机80端口映射到容器80端口 environment: - API_BASE_URL=http://backend-api:3000 # 后端服务地址(容器网络内域名) - LOG_LEVEL=info depends_on: - backend-api # 依赖后端服务启动 restart: unless-stopped # 异常退出后自动重启 backend-api: image: [后端API镜像地址]:latest ports: - "3000:3000" restart: unless-stopped
启动命令:
bashdocker-compose up -d
若需基于前端源码构建镜像,可使用多阶段构建优化镜像体积(以React应用为例):
项目结构:
my-spa/ ├── Dockerfile ├── package.json ├── src/ └── public/
Dockerfile:
dockerfile# 阶段1:构建前端产物(基于Node.js) FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm install # 安装依赖 COPY . . RUN npm run build # 构建静态产物(输出到./build目录) # 阶段2:生成运行时镜像(基于Nginx Alpine) FROM nginx:alpine # 复制构建产物到Nginx静态目录 COPY --from=builder /app/build /usr/share/nginx/html # 复制自定义Nginx配置(可选) COPY nginx.conf /etc/nginx/conf.d/default.conf # 暴露端口 EXPOSE 80 # 启动Nginx CMD ["nginx", "-g", "daemon off;"]
构建命令:
bashdocker build -t my-web-client:v1.0 .
| 参数类型 | 配置项 | 说明 | 默认值 |
|---|---|---|---|
| 容器运行参数 | --port/-p | 宿主机与容器端口映射 | 80(容器内) |
| 容器运行参数 | --volume/-v | 挂载外部文件/目录(如配置、静态资源) | 无 |
| 环境变量 | PORT | 容器内Web服务器监听端口 | 80 |
| 环境变量 | API_BASE_URL | 前端API请求基础地址 | http://localhost:3000 |
镜像启动时,通过 envsubst 工具替换前端资源中的环境变量占位符(需前端构建时预留)。例如:
window.API_BASE_URL = '${API_BASE_URL}'API_BASE_URL 的值会自动替换 ${API_BASE_URL} 占位符host.docker.internal 作为宿主机域名(仅Docker Desktop支持)/etc/nginx/ssl)并修改Nginx配置启用HTTPSWeb Client Application 镜像提供了开箱即用的前端应用容器化方案,通过轻量级设计、灵活配置和标准化部署流程,简化了前端应用的交付和运维成本。适用于从开发测试到生产环境的全流程使用,支持静态网站、SPA等多种前端应用类型。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务