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) 表示服务正在运行
  • 没有 FailedError 相关的错误信息

示例输出:

● 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_MOUNTSOPENCLAW_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.gpg

APT 仓库添加失败

检查你的 Ubuntu 版本代号:

lsb_release -cs

如果返回的不是 jammyfocalnoble 等标准代号,可能需要手动指定:

# 对于 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.io

2. Docker 服务无法启动

# 检查服务状态
sudo systemctl status docker

# 查看详细日志
sudo journalctl -u docker.service

# 重新加载 systemd 配置
sudo systemctl daemon-reload
sudo systemctl restart docker

常见原因

  • 防火墙冲突:检查 ufwfirewalld 配置
  • 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-world

4. 容器无法访问网络

错误:network unreachableconnection 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 --reload

5. 端口已被占用

错误:port is already allocated

sudo lsof -i :18789
sudo kill <PID>
# 然后在 openclaw 仓库根目录:docker compose down && docker compose up -d

6. 网关容器启动后立即退出

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 onboard

7. 基础镜像拉取或 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 docker

8. 磁盘空间不足

# 查看 Docker 占用空间
docker system df

# 清理未使用的资源
docker system prune -a

# 仅清理悬空镜像
docker image prune

9. 完全重置 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 ~/.openclaw

10. 性能问题

docker stats

如需限制网关容器资源,可在仓库内用 Compose override 文件扩展 openclaw-gatewaydeploy.resources / mem_limit 等(具体键名以官方 docker-compose.yml 为准),避免再用已废弃的单容器 docker run 示例。

正文导航

返回打开抖音
有问题点击我