Linux 安装方法 1:Docker 安装(推荐)
这是官方推荐的 Linux 安装方式。通过 Docker 容器技术,你可以获得最佳的隔离性和安全性,避免与系统其他软件冲突。
推荐等级说明
| 安装方式 | 推荐等级 | 隔离性 | 资源占用 | 适用场景 |
|---|---|---|---|---|
| Docker | ⭐⭐⭐⭐⭐ 推荐 | 优秀 | 低 | 大多数用户的首选 |
| 直接安装 (APT) | ⭐⭐ 不推荐 | 无 | 最低 | 仅限无敏感数据的专用服务器 |
| 直接安装 (YUM) | ⭐⭐ 不推荐 | 无 | 最低 | 仅限无敏感数据的专用服务器 |
为什么推荐 Docker 安装?
- 环境隔离:OpenClaw 运行在独立容器中,不影响主机系统
- 易于管理:一键启动、停止、升级
- 可重复性:在任何 Linux 发行版上获得一致的运行环境
- 安全性:容器隔离降低潜在风险
- 易于卸载:删除容器即可完全清理
前置条件
- 任意现代 Linux 发行版(推荐 Debian 11+ 或 Ubuntu 20.04+)
- 至少 2GB 可用内存
- 至少 10GB 可用磁盘空间
- root 权限或 sudo 权限
遇到任何安装失败,请直接看文末的 失败指引。
步骤 1:安装 Docker
先执行共享安装步骤:
在共享页中,选择“Linux(Ubuntu / Debian)安装 Docker Engine”章节执行完成后,再继续本页后续步骤。
步骤 2:启动 Docker 服务
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启动
sudo systemctl enable docker
# 验证 Docker 状态
sudo systemctl status docker步骤 3:配置 Docker 镜像加速
echo '{"registry-mirrors":["https://docker.m.daocloud.io"]}' | sudo tee /etc/docker/daemon.json > /dev/null
sudo systemctl daemon-reload
sudo systemctl restart docker判断"没问题"可以看这几点:
Active: active (running)表示服务正在运行- 没有
Failed或Error相关的错误信息
示例输出:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-01-01 10:00:00 UTC; 10s ago步骤 4:配置非 root 用户(可选但推荐)
默认情况下,Docker 需要 root 权限。为了安全起见,可以将当前用户添加到 docker 组:
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
# 重新登录或运行以下命令使更改生效
newgrp docker
# 验证(应该不需要 sudo)
docker run hello-world为什么不建议使用 root 运行 Docker?
Docker 守护进程绑定到 Unix socket 而不是 TCP 端口,默认由 root 拥有。如果不想在使用 docker 命令时总是使用 sudo,可以将用户添加到 docker 组。当 docker 组中的用户运行 docker 命令时,不需要使用 sudo。
注意:docker 组等同于 root 权限。关于这对系统安全性的影响,请参考 Docker Daemon Attack Surface。
以下步骤与 OpenClaw 官方 Docker 文档 一致:在仓库根目录用 Compose 跑 openclaw-gateway / openclaw-cli,本地构建镜像。
步骤 5:获取 OpenClaw 源码
git clone https://github.com/openclaw/openclaw.git
cd openclaw后续所有 docker compose 命令均应在该仓库根目录执行。
步骤 6:一键安装(推荐)
./docker-setup.sh脚本会:构建 Gateway 镜像、运行新手引导、可选提供商提示、用 Docker Compose 启动 Gateway、生成令牌并写入项目根目录的 .env。
可选环境变量(在运行 ./docker-setup.sh 之前导出,见官方文档):
| 变量 | 作用 |
|---|---|
OPENCLAW_DOCKER_APT_PACKAGES | 构建镜像时额外安装的 apt 包(空格分隔) |
OPENCLAW_EXTRA_MOUNTS | 额外主机绑定挂载(逗号分隔列表) |
OPENCLAW_HOME_VOLUME | 用命名卷持久化容器内 /home/node |
若设置了 OPENCLAW_EXTRA_MOUNTS 或 OPENCLAW_HOME_VOLUME,脚本会生成 docker-compose.extra.yml。之后执行 Compose 时需带上该文件,例如:
docker compose -f docker-compose.yml -f docker-compose.extra.yml up -d步骤 7:手动流程(可选)
在仓库根目录执行:
docker build -t openclaw:local -f Dockerfile .
docker compose run --rm openclaw-cli onboard
docker compose up -d openclaw-gateway步骤 8:完成后的访问与令牌
- 浏览器打开:
http://127.0.0.1:18789/ - 在控制 UI(设置 → token)粘贴网关令牌(
docker-setup.sh会写入.env) - 需要带令牌的仪表板链接且不自动打开浏览器时:
docker compose run --rm openclaw-cli dashboard --no-open若出现未授权或配对提示:
docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>主机侧路径(官方):~/.openclaw/、~/.openclaw/workspace。
验证安装
docker compose ps健康检查(需已导出 .env 中的 OPENCLAW_GATEWAY_TOKEN):
docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLAW_GATEWAY_TOKEN"# 若无 curl:sudo apt install -y curl
curl -sS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:18789/常用命令
均在 openclaw 仓库根目录执行;若使用 docker-compose.extra.yml,为每条命令加上 -f docker-compose.yml -f docker-compose.extra.yml。
docker compose logs -f openclaw-gateway
docker compose down
docker compose up -d
docker compose build && docker compose up -d
docker compose run --rm openclaw-cli dashboard --no-open
docker compose exec openclaw-gateway sh数据持久化说明
官方 Compose 将配置与工作区放在主机 ~/.openclaw/ 与 ~/.openclaw/workspace。默认镜像以 node(uid 1000)运行;若在挂载目录上出现 EACCES(官方文档「权限 + EACCES」),可在 Linux 上执行:
sudo mkdir -p ~/.openclaw ~/.openclaw/workspace
sudo chown -R 1000:1000 ~/.openclaw ~/.openclaw/workspace备份:
tar -czf openclaw-backup-$(date +%Y%m%d).tar.gz -C ~ .openclaw
tar -xzf openclaw-backup-20240101.tar.gz -C ~失败指引(折叠)
安装或运行失败时请展开
1. Docker 安装失败
GPG 密钥添加失败
# 清理旧的密钥文件
sudo rm -f /etc/apt/keyrings/docker.gpg
# 重新添加
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgAPT 仓库添加失败
检查你的 Ubuntu 版本代号:
lsb_release -cs如果返回的不是 jammy、focal、noble 等标准代号,可能需要手动指定:
# 对于 Linux Mint 等衍生版
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list依赖包冲突
# 清理可能冲突的旧版本
sudo apt remove docker docker-engine docker.io containerd runc
# 重新安装
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io2. Docker 服务无法启动
# 检查服务状态
sudo systemctl status docker
# 查看详细日志
sudo journalctl -u docker.service
# 重新加载 systemd 配置
sudo systemctl daemon-reload
sudo systemctl restart docker常见原因:
- 防火墙冲突:检查
ufw或firewalld配置 - SELinux 限制(CentOS/RHEL):临时禁用测试
sudo setenforce 0 - 内核版本过低:Docker 需要 3.10+ 内核
3. 权限问题
错误:permission denied while trying to connect to the Docker daemon
# 确保用户在 docker 组中
sudo usermod -aG docker $USER
# 重新登录或运行
newgrp docker
# 验证
docker run hello-world4. 容器无法访问网络
错误:network unreachable 或 connection refused
# 检查 Docker 网络
docker network ls
docker network inspect bridge
# 重建网络
docker network prune防火墙问题:
# Ubuntu/Debian (ufw)
sudo ufw allow 18789/tcp
# CentOS/RHEL (firewalld)
sudo firewall-cmd --add-port=18789/tcp --permanent
sudo firewall-cmd --reload5. 端口已被占用
错误:port is already allocated
sudo lsof -i :18789
sudo kill <PID>
# 然后在 openclaw 仓库根目录:docker compose down && docker compose up -d6. 网关容器启动后立即退出
cd /path/to/openclaw
docker compose logs openclaw-gateway
ls -la ~/.openclaw/
# 必要时备份后调整权限:sudo chown -R 1000:1000 ~/.openclaw ~/.openclaw/workspace
# docker compose run --rm openclaw-cli onboard7. 基础镜像拉取或 docker build 失败
国内网络问题:优先使用上文「步骤 3:配置 Docker 镜像加速」中的 daemon.json;也可增加备用镜像地址,例如:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker8. 磁盘空间不足
# 查看 Docker 占用空间
docker system df
# 清理未使用的资源
docker system prune -a
# 仅清理悬空镜像
docker image prune9. 完全重置 Docker
警告:这会删除所有容器、镜像和数据
# 停止所有容器
docker stop $(docker ps -aq)
# 删除所有容器
docker rm $(docker ps -aq)
# 删除所有镜像
docker rmi $(docker images -q)
# 清理卷和网络
docker volume prune
docker network prune
# 备份后删除 龙虾 数据
tar -czf openclaw-backup.tar.gz ~/.openclaw
rm -rf ~/.openclaw10. 性能问题
docker stats如需限制网关容器资源,可在仓库内用 Compose override 文件扩展 openclaw-gateway 的 deploy.resources / mem_limit 等(具体键名以官方 docker-compose.yml 为准),避免再用已废弃的单容器 docker run 示例。
