在Docker容器中安全运行OpenClaw:无需虚拟机,体验AI助手

在Docker容器中安全运行OpenClaw:无需虚拟机,体验AI助手

    • 一、引言
    • 二、什么是OpenClaw?
    • 三、为什么选择Docker?
    • 四、前置准备
    • 五、详细操作步骤
      • [1. 创建支持systemd的Docker容器](#1. 创建支持systemd的Docker容器)
      • [2. 进入容器并安装基础依赖](#2. 进入容器并安装基础依赖)
      • [3. 安装Node.js](#3. 安装Node.js)
      • [4. 安装Chrome浏览器](#4. 安装Chrome浏览器)
      • [5. 配置中文环境](#5. 配置中文环境)
      • [6. 测试浏览器是否正常工作](#6. 测试浏览器是否正常工作)
      • [7. 启动systemd用户实例](#7. 启动systemd用户实例)
      • [8. 安装OpenClaw](#8. 安装OpenClaw)
      • [9. 获取必要的密钥信息](#9. 获取必要的密钥信息)
      • [10. 安装飞书插件](#10. 安装飞书插件)
      • [11. 创建配置文件](#11. 创建配置文件)
      • [12. 启动OpenClaw网关](#12. 启动OpenClaw网关)
      • [13. 在飞书中测试](#13. 在飞书中测试)
      • [14. 安装为系统服务(可选)](#14. 安装为系统服务(可选))
    • 六、总结

一、引言

你是否对AI助手感兴趣,但又担心直接安装在电脑上会影响系统安全或权限?购买云服务器又觉得不划算,使用虚拟机则占用资源过多?本文将介绍一种折中方案------在Docker容器中运行OpenClaw,既能隔离环境保障安全,又轻量便捷,同时支持浏览器功能,让你轻松体验这款AI助手。

本文适合有一定Docker基础,希望以安全、可控制的方式尝试OpenClaw的开发者或技术爱好者。


二、什么是OpenClaw?

OpenClaw 是一款开源的AI助手框架,支持通过多种平台(如飞书)进行交互。它能够调用浏览器执行任务,结合大语言模型(如火山引擎的Doubao模型)完成信息查询、自动化操作等智能任务。

三、为什么选择Docker?

  • 安全隔离:不直接占用主机系统权限,避免潜在的安全风险。
  • 环境干净:所有依赖和配置封装在容器内,不会污染主机环境。
  • 轻量便捷:相比虚拟机,Docker容器启动更快、占用资源更少。
  • 易于清理:测试完成后可轻松删除容器,不留痕迹。

四、前置准备

在开始之前,请确保你已准备好:

  1. 安装好Docker并启动服务。
  2. 拥有一个飞书账号(用于创建机器人)。
  3. 注册火山引擎账号并获取API Key(用于调用Doubao模型)。

五、详细操作步骤

1. 创建支持systemd的Docker容器

我们使用一个已经集成systemd的Ubuntu镜像,以便在容器内运行系统服务。

bash 复制代码
# 如果已有同名容器,先停止并删除
docker stop openclaw_docker
docker rm openclaw_docker

# 创建新容器
docker run -d --name openclaw_docker \
  --privileged --net=host \
  --tmpfs /tmp \
  --tmpfs /run \
  --tmpfs /run/lock \
  -v /sys/fs/cgroup:/sys/fs/cgroup:rw \
  -v $PWD:/home  -w /home \
  --cgroupns=host \
  -e container=docker \
  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/trfore/docker-ubuntu2404-systemd:latest /sbin/init

注意--privileged 参数会给予容器较高权限,因此请仅在自己可控的环境中使用。

2. 进入容器并安装基础依赖

bash 复制代码
# 进入容器终端
docker exec -ti openclaw_docker bash
		
# 更新软件源并安装常用工具
apt update
apt install curl wget vim -y
apt install xz-utils -y

3. 安装Node.js

OpenClaw 基于Node.js开发,因此需要先安装Node.js环境。

bash 复制代码
# 下载并解压Node.js
wget -O node-v24.13.0-linux-x64.tar.xz https://nodejs.org/dist/v24.13.0/node-v24.13.0-linux-x64.tar.xz
tar -xf node-v24.13.0-linux-x64.tar.xz
cp node-v24.13.0-linux-x64/* /usr/local/ -rf

# 验证安装
node --version

4. 安装Chrome浏览器

OpenClaw 需要浏览器来执行网页操作任务。

bash 复制代码
# 下载并安装Chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
dpkg -i google-chrome-stable_current_amd64.deb
apt --fix-broken install -y # 修复可能的依赖问题

5. 配置中文环境

如果你的任务涉及中文网页,建议配置中文字体和语言支持。

bash 复制代码
# 安装中文字体和语言包
apt-get install -y locales fonts-wqy-zenhei language-pack-zh-hans -y

# 生成中文locale并设置环境变量
locale-gen zh_CN.UTF-8
locale-gen zh_CN.GBK
echo "export LANG=zh_CN.UTF-8" >> ~/.bashrc
echo "export LANGUAGE=zh_CN:zh" >> ~/.bashrc
source ~/.bashrc

6. 测试浏览器是否正常工作

bash 复制代码
# 使用headless模式截取百度首页,验证浏览器可正常运行
/usr/bin/google-chrome-stable --headless --disable-gpu \
	--no-sandbox --screenshot="screenshot.png" \
	--window-size=1920,1080 https://www.baidu.com

如果运行成功,当前目录下会生成 screenshot.png 图片。

7. 启动systemd用户实例

OpenClaw 服务依赖于systemd的用户实例来管理。

bash 复制代码
export XDG_RUNTIME_DIR=/run/user/$(id -u)
mkdir -p $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
systemd --user &

8. 安装OpenClaw

bash 复制代码
curl -fsSL https://openclaw.bot/install.sh | bash

安装过程中,当看到 "Starting setup..." 提示时,按 Ctrl+C 取消初始配置向导,因为我们后面会手动创建配置文件。

9. 获取必要的密钥信息

10. 安装飞书插件

bash 复制代码
openclaw plugins install @m1heng-clawd/feishu

11. 创建配置文件

将以下命令中的 feishu_appIdfeishu_appSecretdoubao_apiKey 替换为你自己的值,然后执行:

json 复制代码
# 设置环境变量(请替换为你的实际密钥)
export feishu_appId="<你的飞书appId>"
export feishu_appSecret="<你的飞书appSecret>"
export doubao_apiKey="<你的火山引擎API Key>"

# 生成OpenClaw配置文件
cat > ~/.openclaw/openclaw.json << EOF
{
  "meta": {
    "lastTouchedVersion": "2026.2.6-3",
    "lastTouchedAt": "2026-02-08T07:21:25.150Z"
  },
  "wizard": {
    "lastRunAt": "2026-02-08T07:21:25.140Z",
    "lastRunVersion": "2026.2.6-3",
    "lastRunCommand": "configure",
    "lastRunMode": "local"
  },
  "browser": {
    "enabled": true,
    "executablePath": "/usr/bin/google-chrome-stable",
    "headless": true,
    "noSandbox": true,
	"defaultProfile": "desktop",
	"profiles": {
		"desktop": { "cdpUrl": "http://127.0.0.1:9222",color: "#00AA00" }
	}	
  },
  "auth": {
    "profiles": {
      "doubao:default": { "provider": "doubao", "mode": "api_key" }
    }
  },
  "models": {
    "providers": {
      "doubao": {
        "baseUrl": "https://ark.cn-beijing.volces.com/api/v3",
        "apiKey": "$doubao_apiKey",
        "api": "openai-completions",
        "models": [
          {
            "id": "doubao-seed-1-8-251228",
            "name": "doubao-seed-1-8-251228",
            "reasoning": false,
            "input": ["text"],
            "cost": {"input": 0,"output": 0,"cacheRead": 0,"cacheWrite": 0},
            "contextWindow": 128000,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "doubao/doubao-seed-1-8-251228"
      },
      "models": {
        "doubao/doubao-seed-1-8-251228": { "alias": "doubao" }
      },
      "workspace": "/root/.openclaw/workspace",
      "compaction": {
        "mode": "safeguard"
      },
      "maxConcurrent": 4,
      "subagents": {"maxConcurrent": 8}
    }
  },
  "messages": {
    "ackReactionScope": "group-mentions"
  },
  "commands": {
    "native": "auto",
    "nativeSkills": "auto",
    "restart": true
  },
  "channels": {
    "feishu": {
      "enabled": true,
      "appId": "$feishu_appId",
      "appSecret": "$feishu_appSecret",
      "domain": "feishu",
      "groupPolicy": "open",
      "dmPolicy": "open",
      "allowFrom": ["*"]
    }
  },
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "loopback",
    "controlUi": {"allowInsecureAuth": true},
    "auth": {
      "mode": "token",
      "token": "94d6e2dd73d8b31075ac706465c5a1a7a96e662e5992cf8b"
    },
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    }
  },
  "plugins": {
    "entries": {
      "feishu": {
        "enabled": true
      }
    },
    "installs": {
      "feishu": {
        "source": "npm",
        "spec": "@m1heng-clawd/feishu",
        "installPath": "/root/.openclaw/extensions/feishu",
        "version": "0.1.7",
        "installedAt": "2026-02-08T06:22:56.392Z"
      }
    }
  }
}
EOF

12. 启动OpenClaw网关

bash 复制代码
openclaw gateway

如果一切正常,你会看到网关启动成功的日志信息。

13. 在飞书中测试

打开手机飞书APP,找到你创建的机器人,开始对话。

14. 安装为系统服务(可选)

如果你希望OpenClaw在后台持续运行,可以将其安装为systemd服务:

bash 复制代码
openclaw gateway install

# 查看服务状态
systemctl --user status openclaw-gateway.service

# 停止服务
systemctl --user stop openclaw-gateway.service

六、总结

通过Docker容器运行OpenClaw,你在获得完整功能体验的同时,也保证了主机系统的安全与洁净。这种方式特别适合短期测试、学习研究或多环境隔离使用的场景。

现在,你已拥有一个运行在隔离环境中的AI助手,可以安全地探索其各项功能了。如果在配置过程中遇到问题,可以参考OpenClaw官方文档或相关社区进行交流。


本文基于实践编写,部分配置可能随版本更新而变化,请以官方文档为准。

相关推荐
NAGNIP1 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab1 天前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab1 天前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP1 天前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年1 天前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼1 天前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS1 天前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区1 天前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈1 天前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang1 天前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx