把 AI 浏览器装进 Docker:部署、配置与模型接入全流程指南
AI浏览器 Docker部署教程|附配置文件
随着大模型能力的不断增强,“AI浏览器”逐渐成为很多开发者和效率工具爱好者关注的方向。它不再只是一个普通网页浏览器,而是可以结合大语言模型完成网页理解、信息检索、表单填写、页面摘要、自动点击、任务执行等操作的智能浏览环境。
对于个人用户来说,在本地或服务器上部署一个 AI 浏览器,可以用于资料收集、网页自动化、内容整理、内部系统辅助操作等场景;对于团队来说,则可以将其作为统一的自动化浏览入口,结合私有模型或 API 模型来完成半自动化工作流。
本文将介绍一种基于 Docker / Docker Compose 的 AI 浏览器部署方案,并提供完整配置文件示例,方便你快速搭建、迁移和维护。
一、什么是 AI 浏览器?
本文所说的 AI 浏览器,并不是某个特定厂商的浏览器产品,而是一类结合了以下能力的应用形态:
-
浏览器环境
- 通常基于 Chromium、Chrome 或 Playwright;
- 支持网页打开、点击、输入、滚动、截图等操作。
-
大模型能力
- 支持 OpenAI、DeepSeek、通义千问、智谱、Ollama 等模型;
- 可以理解网页内容,并根据用户指令制定操作步骤。
-
自动化执行能力
- 可以自动访问网站;
- 可以填写表单、搜索信息、提取内容;
- 可以执行多步骤浏览任务。
-
可视化界面
- 提供 Web UI;
- 用户可以通过网页输入任务;
- 可以查看浏览器执行过程和结果。
通过 Docker 部署 AI 浏览器的好处在于:环境隔离、安装简单、便于迁移、便于升级,也更适合部署在服务器或 NAS 上长期运行。
二、适用场景
AI 浏览器适合以下场景:
- 自动搜索并整理资料;
- 对网页内容进行总结;
- 自动访问多个页面并提取信息;
- 辅助填写固定格式表单;
- 自动化测试简单网页流程;
- 内部后台信息查询;
- 搭配私有大模型构建企业内部智能浏览助手;
- 在远程服务器上运行可视化浏览器环境。
不过需要注意,AI 浏览器并不适合用于绕过验证码、批量爬取受限数据、攻击网站或违反网站服务条款的行为。部署和使用时应遵守法律法规及目标网站规则。
三、部署前准备
本文示例环境如下:
| 项目 | 示例 |
|---|---|
| 系统 | Ubuntu 22.04 / Debian 12 / CentOS 7+ |
| CPU | 2 核以上 |
| 内存 | 建议 4GB 以上 |
| 磁盘 | 建议 10GB 以上可用空间 |
| Docker | 20.10+ |
| Docker Compose | v2 版本 |
如果你只是本地测试,也可以在 Windows、macOS 上使用 Docker Desktop。
四、安装 Docker 与 Docker Compose
如果你的服务器尚未安装 Docker,可以使用以下方式安装。
1. Ubuntu / Debian 安装 Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
添加 Docker 官方 GPG key:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
添加 Docker 软件源:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
检查版本:
docker version
docker compose version
启动 Docker:
sudo systemctl enable docker
sudo systemctl start docker
五、创建部署目录
建议将 AI 浏览器相关文件统一放在 /opt/ai-browser 目录下:
sudo mkdir -p /opt/ai-browser
cd /opt/ai-browser
创建几个常用目录:
sudo mkdir -p data logs downloads config
目录说明:
| 目录 | 作用 |
|---|---|
data |
保存应用数据 |
logs |
保存运行日志 |
downloads |
浏览器下载文件目录 |
config |
配置文件目录 |
六、Docker Compose 部署方案说明
本文采用一个相对通用的 AI 浏览器部署结构:
ai-browser:AI 浏览器 Web 服务;browser:远程 Chromium 浏览器服务;redis:可选任务队列或缓存服务;ollama:可选本地大模型服务。
如果你使用的是 OpenAI、DeepSeek、通义千问等云端 API,可以不启用 Ollama;如果希望完全本地化运行,则可以搭配 Ollama 部署本地模型。
七、配置环境变量文件
在 /opt/ai-browser 目录下创建 .env 文件:
vim .env
写入以下内容:
# =========================
# 基础配置
# =========================
TZ=Asia/Shanghai
# AI浏览器 Web UI 端口
AI_BROWSER_PORT=7788
# 浏览器调试端口
CHROME_DEBUG_PORT=9222
# noVNC 可视化浏览器端口
NOVNC_PORT=6080
# =========================
# 模型配置
# =========================
# 可选值:openai、deepseek、qwen、ollama
LLM_PROVIDER=openai
# OpenAI 示例
OPENAI_API_KEY=sk-your-openai-api-key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o-mini
# DeepSeek 示例
DEEPSEEK_API_KEY=sk-your-deepseek-api-key
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
# 通义千问兼容 OpenAI API 示例
QWEN_API_KEY=your-qwen-api-key
QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
QWEN_MODEL=qwen-plus
# Ollama 本地模型示例
OLLAMA_BASE_URL=http://ollama:11434
OLLAMA_MODEL=qwen2.5:7b
# =========================
# 浏览器配置
# =========================
BROWSER_HEADLESS=false
BROWSER_REMOTE_URL=http://browser:9222
BROWSER_DOWNLOAD_DIR=/downloads
# =========================
# 安全配置
# =========================
# Web UI 登录账号密码,建议修改
WEB_USERNAME=admin
WEB_PASSWORD=change-this-password
# 是否允许注册
ENABLE_REGISTER=false
# =========================
# 任务配置
# =========================
MAX_TASK_STEPS=30
TASK_TIMEOUT=300
保存后退出。
注意:
.env中包含 API Key 和登录密码,不建议提交到 Git 仓库,也不要直接公开分享。
八、编写 docker-compose.yml
在 /opt/ai-browser 目录下创建 docker-compose.yml:
vim docker-compose.yml
写入以下配置:
version: "3.9"
services:
ai-browser:
image: ghcr.io/example/ai-browser:latest
container_name: ai-browser
restart: unless-stopped
depends_on:
- browser
- redis
ports:
- "${AI_BROWSER_PORT}:7788"
env_file:
- .env
environment:
TZ: ${TZ}
LLM_PROVIDER: ${LLM_PROVIDER}
OPENAI_API_KEY: ${OPENAI_API_KEY}
OPENAI_BASE_URL: ${OPENAI_BASE_URL}
OPENAI_MODEL: ${OPENAI_MODEL}
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY}
DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL}
DEEPSEEK_MODEL: ${DEEPSEEK_MODEL}
QWEN_API_KEY: ${QWEN_API_KEY}
QWEN_BASE_URL: ${QWEN_BASE_URL}
QWEN_MODEL: ${QWEN_MODEL}
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL}
OLLAMA_MODEL: ${OLLAMA_MODEL}
BROWSER_REMOTE_URL: ${BROWSER_REMOTE_URL}
BROWSER_DOWNLOAD_DIR: ${BROWSER_DOWNLOAD_DIR}
WEB_USERNAME: ${WEB_USERNAME}
WEB_PASSWORD: ${WEB_PASSWORD}
ENABLE_REGISTER: ${ENABLE_REGISTER}
MAX_TASK_STEPS: ${MAX_TASK_STEPS}
TASK_TIMEOUT: ${TASK_TIMEOUT}
REDIS_URL: redis://redis:6379/0
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./downloads:/downloads
- ./config:/app/config
networks:
- ai-browser-net
browser:
image: browserless/chrome:latest
container_name: ai-browser-chrome
restart: unless-stopped
shm_size: "2gb"
ports:
- "${CHROME_DEBUG_PORT}:3000"
environment:
TZ: ${TZ}
MAX_CONCURRENT_SESSIONS: 5
CONNECTION_TIMEOUT: 300000
DEFAULT_BLOCK_ADS: "true"
ENABLE_DEBUGGER: "true"
PREBOOT_CHROME: "true"
KEEP_ALIVE: "true"
CHROME_REFRESH_TIME: 3600000
volumes:
- ./downloads:/downloads
networks:
- ai-browser-net
novnc:
image: kasmweb/chrome:1.15.0
container_name: ai-browser-novnc
restart: unless-stopped
shm_size: "2gb"
ports:
- "${NOVNC_PORT}:6901"
environment:
VNC_PW: "change-vnc-password"
TZ: ${TZ}
volumes:
- ./downloads:/home/kasm-user/Downloads
networks:
- ai-browser-net
redis:
image: redis:7-alpine
container_name: ai-browser-redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- ./data/redis:/data
networks:
- ai-browser-net
ollama:
image: ollama/ollama:latest
container_name: ai-browser-ollama
restart: unless-stopped
profiles:
- local-llm
ports:
- "11434:11434"
volumes:
- ./data/ollama:/root/.ollama
networks:
- ai-browser-net
networks:
ai-browser-net:
driver: bridge
九、关于镜像的说明
上面的 ghcr.io/example/ai-browser:latest 是示例镜像名称。实际部署时,你需要替换为你使用的 AI 浏览器项目镜像,例如:
image: your-registry/your-ai-browser:latest
如果你使用的项目没有提供官方镜像,也可以自己编写 Dockerfile 构建。
下面提供一个通用的 Python + Playwright 类型 AI 浏览器 Dockerfile 示例。
十、可选:自定义 Dockerfile
如果你的 AI 浏览器项目是 Python 应用,可以在项目目录中创建 Dockerfile:
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV TZ=Asia/Shanghai
WORKDIR /app
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
fonts-noto-cjk \
fonts-wqy-zenhei \
libnss3 \
libatk-bridge2.0-0 \
libx11-xcb1 \
libxcomposite1 \
libxdamage1 \
libxrandr2 \
libgbm1 \
libasound2 \
libxss1 \
libgtk-3-0 \
libdrm2 \
libxshmfence1 \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
RUN playwright install chromium
COPY . /app
EXPOSE 7788
CMD ["python", "app.py"]
如果你的项目使用 FastAPI,可以将启动命令改成:
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7788"]
然后构建镜像:
docker build -t local/ai-browser:latest .
接着将 docker-compose.yml 中的镜像改为:
image: local/ai-browser:latest
十一、启动 AI 浏览器
进入部署目录:
cd /opt/ai-browser
启动服务:
docker compose up -d
查看容器状态:
docker compose ps
正常情况下,你会看到类似输出:
NAME STATUS
ai-browser Up
ai-browser-chrome Up
ai-browser-novnc Up
ai-browser-redis Up
查看日志:
docker compose logs -f ai-browser
如果日志中没有明显报错,说明服务已经启动成功。
十二、访问 Web UI
假设你的服务器 IP 是:
192.168.1.100
那么可以访问:
http://192.168.1.100:7788
默认登录信息来自 .env:
用户名:admin
密码:change-this-password
请首次登录后及时修改密码,或者直接在 .env 文件中修改:
WEB_USERNAME=admin
WEB_PASSWORD=your-strong-password
修改后重启:
docker compose restart ai-browser
十三、访问可视化浏览器 noVNC
如果你启用了 novnc 服务,可以访问:
https://服务器IP:6080
或者:
http://服务器IP:6080
具体协议取决于镜像实现。部分 Kasm 镜像默认使用 HTTPS。
默认 VNC 密码来自 docker-compose.yml:
VNC_PW: "change-vnc-password"
建议修改为高强度密码,例如:
VNC_PW: "A-very-strong-vnc-password"
修改后重启:
docker compose restart novnc
十四、配置不同模型供应商
AI 浏览器能否稳定运行,很大程度取决于模型能力、上下文长度、工具调用效果和响应速度。下面介绍几种常见配置。
1. 使用 OpenAI
修改 .env:
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-your-openai-api-key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o-mini
重启服务:
docker compose restart ai-browser
适合场景:
- 网页理解;
- 多步骤任务;
- 表格信息提取;
- 内容总结;
- 复杂推理。
2. 使用 DeepSeek
修改 .env:
LLM_PROVIDER=deepseek
DEEPSEEK_API_KEY=sk-your-deepseek-api-key
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
重启服务:
docker compose restart ai-browser
适合场景:
- 中文内容处理;
- 资料总结;
- 低成本任务执行;
- 内部知识查询辅助。
3. 使用通义千问兼容模式
修改 .env:
LLM_PROVIDER=qwen
QWEN_API_KEY=your-qwen-api-key
QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
QWEN_MODEL=qwen-plus
重启:
docker compose restart ai-browser
4. 使用 Ollama 本地模型
如果你希望使用本地模型,可以启用 ollama profile:
docker compose --profile local-llm up -d
下载模型,例如:
docker exec -it ai-browser-ollama ollama pull qwen2.5:7b
修改 .env:
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://ollama:11434
OLLAMA_MODEL=qwen2.5:7b
重启 AI 浏览器:
docker compose restart ai-browser
本地模型优点:
- 数据不出本地或内网;
- 不依赖第三方 API;
- 长期使用成本更可控。
缺点:
- 需要更高硬件配置;
- 小模型在复杂网页自动化任务上的稳定性可能不如云端大模型;
- 推理速度取决于 CPU/GPU 性能。
十五、常见任务示例
部署完成后,你可以在 Web UI 中输入类似任务:
打开百度,搜索“Docker Compose 教程”,总结搜索结果前五条的主要内容。
或者:
访问指定网站,阅读首页内容,并用中文总结这个网站提供了哪些服务。
再比如:
打开一个技术博客页面,提取文章标题、发布时间、作者和主要观点,整理成 Markdown 表格。
对于复杂任务,建议拆分成多个小任务。AI 浏览器虽然可以自动执行多步骤操作,但它仍然可能受到页面结构、弹窗、验证码、登录状态、网络延迟等因素影响。
十六、反向代理配置
如果你希望通过域名访问 AI 浏览器,可以使用 Nginx 进行反向代理。
假设域名为:
ai-browser.example.com
创建 Nginx 配置:
server {
listen 80;
server_name ai-browser.example.com;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:7788;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
}
启用配置并重载:
sudo nginx -t
sudo systemctl reload nginx
如果需要 HTTPS,可以使用 Certbot:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d ai-browser.example.com
十七、安全建议
AI 浏览器具备网页访问和自动操作能力,因此安全配置非常重要。
1. 不要裸奔暴露公网
如果必须公网访问,请至少配置:
- 强密码;
- HTTPS;
- IP 白名单;
- 反向代理认证;
- 防火墙限制;
- 禁用注册功能。
2. API Key 不要写入镜像
API Key 应放在 .env 文件中,通过环境变量传入容器,不要写死在代码或 Dockerfile 中。
3. 控制浏览器访问范围
如果部署在企业内网,建议限制容器可访问的网络范围,避免 AI 浏览器误访问敏感系统。
4. 定期更新镜像
更新镜像:
docker compose pull
docker compose up -d
清理旧镜像:
docker image prune -f
5. 定期备份数据
建议备份:
/opt/ai-browser/data
/opt/ai-browser/config
/opt/ai-browser/.env
/opt/ai-browser/docker-compose.yml
备份命令示例:
tar -czvf ai-browser-backup-$(date +%F).tar.gz /opt/ai-browser
十八、常见问题排查
1. 容器启动后访问不了 Web UI
检查端口是否监听:
docker compose ps
ss -tunlp | grep 7788
查看日志:
docker compose logs -f ai-browser
检查防火墙:
sudo ufw status
放行端口:
sudo ufw allow 7788/tcp
2. 浏览器无法启动或页面一直加载
可能原因:
- 服务器内存不足;
/dev/shm太小;- 浏览器镜像启动慢;
- 容器网络异常。
解决方案:
shm_size: "2gb"
并重启:
docker compose restart browser
3. 中文网页显示乱码
需要在镜像中安装中文字体,例如:
fonts-noto-cjk
fonts-wqy-zenhei
如果使用自定义 Dockerfile,可以参考前文中的字体安装配置。
4. 模型返回错误
检查 .env 中的 API Key、Base URL 和模型名称是否正确。
查看日志:
docker compose logs -f ai-browser
常见错误包括:
- API Key 无效;
- 账户余额不足;
- 模型名称写错;
- Base URL 写错;
- 网络无法访问模型服务。
5. Ollama 模型调用失败
检查 Ollama 容器:
docker compose ps ollama
查看模型列表:
docker exec -it ai-browser-ollama ollama list
测试接口:
curl http://127.0.0.1:11434/api/tags
如果 AI 浏览器容器内访问 Ollama,应使用:
http://ollama:11434
而不是:
http://127.0.0.1:11434
十九、升级与维护
升级通常分为三步:
cd /opt/ai-browser
docker compose pull
docker compose up -d
如果是本地构建镜像:
docker compose build --no-cache
docker compose up -d
查看当前镜像:
docker images
清理无用容器和镜像:
docker system prune -f
如果你需要保留历史版本,建议在升级前先备份:
tar -czvf ai-browser-before-upgrade-$(date +%F).tar.gz /opt/ai-browser
二十、完整配置文件汇总
下面给出一个简化后的最终版本,适合快速复制使用。
.env
TZ=Asia/Shanghai
AI_BROWSER_PORT=7788
CHROME_DEBUG_PORT=9222
NOVNC_PORT=6080
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-your-openai-api-key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o-mini
DEEPSEEK_API_KEY=sk-your-deepseek-api-key
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
QWEN_API_KEY=your-qwen-api-key
QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
QWEN_MODEL=qwen-plus
OLLAMA_BASE_URL=http://ollama:11434
OLLAMA_MODEL=qwen2.5:7b
BROWSER_HEADLESS=false
BROWSER_REMOTE_URL=http://browser:9222
BROWSER_DOWNLOAD_DIR=/downloads
WEB_USERNAME=admin
WEB_PASSWORD=change-this-password
ENABLE_REGISTER=false
MAX_TASK_STEPS=30
TASK_TIMEOUT=300
docker-compose.yml
version: "3.9"
services:
ai-browser:
image: ghcr.io/example/ai-browser:latest
container_name: ai-browser
restart: unless-stopped
depends_on:
- browser
- redis
ports:
- "${AI_BROWSER_PORT}:7788"
env_file:
- .env
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./downloads:/downloads
- ./config:/app/config
environment:
TZ: ${TZ}
LLM_PROVIDER: ${LLM_PROVIDER}
OPENAI_API_KEY: ${OPENAI_API_KEY}
OPENAI_BASE_URL: ${OPENAI_BASE_URL}
OPENAI_MODEL: ${OPENAI_MODEL}
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY}
DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL}
DEEPSEEK_MODEL: ${DEEPSEEK_MODEL}
QWEN_API_KEY: ${QWEN_API_KEY}
QWEN_BASE_URL: ${QWEN_BASE_URL}
QWEN_MODEL: ${QWEN_MODEL}
OLLAMA_BASE_URL: ${OLLAMA_BASE_URL}
OLLAMA_MODEL: ${OLLAMA_MODEL}
BROWSER_REMOTE_URL: ${BROWSER_REMOTE_URL}
BROWSER_DOWNLOAD_DIR: ${BROWSER_DOWNLOAD_DIR}
WEB_USERNAME: ${WEB_USERNAME}
WEB_PASSWORD: ${WEB_PASSWORD}
ENABLE_REGISTER: ${ENABLE_REGISTER}
MAX_TASK_STEPS: ${MAX_TASK_STEPS}
TASK_TIMEOUT: ${TASK_TIMEOUT}
REDIS_URL: redis://redis:6379/0
networks:
- ai-browser-net
browser:
image: browserless/chrome:latest
container_name: ai-browser-chrome
restart: unless-stopped
shm_size: "2gb"
ports:
- "${CHROME_DEBUG_PORT}:3000"
environment:
TZ: ${TZ}
MAX_CONCURRENT_SESSIONS: 5
CONNECTION_TIMEOUT: 300000
DEFAULT_BLOCK_ADS: "true"
ENABLE_DEBUGGER: "true"
PREBOOT_CHROME: "true"
KEEP_ALIVE: "true"
volumes:
- ./downloads:/downloads
networks:
- ai-browser-net
novnc:
image: kasmweb/chrome:1.15.0
container_name: ai-browser-novnc
restart: unless-stopped
shm_size: "2gb"
ports:
- "${NOVNC_PORT}:6901"
environment:
VNC_PW: "change-vnc-password"
TZ: ${TZ}
volumes:
- ./downloads:/home/kasm-user/Downloads
networks:
- ai-browser-net
redis:
image: redis:7-alpine
container_name: ai-browser-redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- ./data/redis:/data
networks:
- ai-browser-net
ollama:
image: ollama/ollama:latest
container_name: ai-browser-ollama
restart: unless-stopped
profiles:
- local-llm
ports:
- "11434:11434"
volumes:
- ./data/ollama:/root/.ollama
networks:
- ai-browser-net
networks:
ai-browser-net:
driver: bridge
二十一、总结
通过 Docker 部署 AI 浏览器,可以让我们快速获得一个稳定、可迁移、易维护的智能浏览环境。本文提供的方案包含 Web UI、远程 Chromium、noVNC、Redis 和 Ollama 等组件,既适合接入云端大模型,也适合扩展为本地私有化模型方案。
实际使用时,你需要根据所选 AI 浏览器项目调整镜像名称、启动命令和环境变量。对于个人用户,建议优先使用云端模型快速验证效果;对于团队或企业用户,则可以结合内网部署、权限控制、反向代理和日志审计,构建更安全可靠的 AI 浏览自动化平台。
最后再次提醒:AI 浏览器具有自动化网页操作能力,请合理设置访问权限,妥善保管 API Key,并在合法合规的范围内使用。