作者:张小白
链接:https://zhuanlan.zhihu.com/p/2005166817753178480
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一、背景与安装选型

OpenClaw近期风靡一时,但是作为一个懂点Linux的张小白来说,一直对此比较慎重。所以虽然近期在玩:

编程工具OpenCode/Claude Code/VSCode-cline +

大模型厂商SilconFlow/OllamaCloud/火山方舟Coding Plan/GLM Coding Plan/OpenRouter

的组合,但是也还没开始体验OpenClaw。(加上单位发文要求员工慎重对待OpenClaw)。

直到张小白看到了这篇:

简单分析下本文。

1.安全性问题需要解决。

应对方式:

(1)使用Mac Mini独立安装——首先你要有一台Mac Mini,大约3000元左右成本。

(2)找一台旧电脑格了装——你需要有一台旧电脑。

(3)云服务器安装——你需要买一台云服务器。

(4)Docker沙箱安装——你本地有电脑就行。

这里个人倾向于选择Docker安装方式。为什么docker好?因为与宿主系统隔离,不会影响真实环境。

2.LLM调用费用问题需要解决

应对方式:

(1)购买火山方舟Coding Plan

(2)购买GLM Coding Plan

(3)购买Kimi Coding Plan

(4)使用openRouter,花钱或每日50次调用(免费调用的数据会被openRouter拿去训练模型)

(5)购买国外的OpenAI ChatGPT、 Anthropic Claude、Google Gemini的套餐

张小白选择了(1)(2),买了(2)一年,买了(1)一个月。

不建议大家选择(5),因为容易封号,封号后钱白花。

二、OpenClaw安装(Docker版)

1、下载代码仓库

git clone https://github.com/openclaw/openclaw.git

这难不倒张小白,换gitee导入即可:

打开

git clone https://gitee.com/zhanghui_china/openclaw

2、Docker安装OpenClaw(Windows PowerShell环境:失败)

cd openclaw
docker build -t openclaw:local -f Dockerfile 

好像windows下的docker不大好使。

还是用WSL环境试试。

3、Docker安装OpenClaw(WSL环境第一次安装:失败)

git clone https://gitee.com/zhanghui_china/openclaw
cd openclaw

一键部署:

./docker-setup.sh

好像还是需要连github。。。

4、Docker安装OpenClaw(WSL魔法环境第二次安装:失败)

张小白只好召唤魔法:

./docker-setup.sh

5、Docker Desktop升级

打开docker desktop,进入Software updates进行升级:

点击Download,耐心等待下载完毕:

点击Update and restart,耐心等待更新完毕,到Images中查看结果:

6、Docker WSL Client端升级

在WSL环境查看Docker镜像情况:

docker images

在这里也要升级docker版本。

sudo apt-get upgrade docker-ce

按Y继续:

重新查看:

docker images

7、Docker安装OpenClaw(WSL魔法环境第三次安装:成功)

./docker-setup.sh

安装完毕,会自动进入OpenClaw的配置界面。

三、OpenClaw配置

这是在问“有风险,要不要继续?”

张小白心惊胆战地回答“Yes”:

先QuickStart吧!

1、选择模型供应商 GLM Coding Plan

参考:

选择“Z.AI”

选择”Coding-Plan-CN”

打开智谱的API Key页面,创建API Key:

在OpenClaw配置页面配置API Key:

这时居然有glm-5了,真是难得。

2、选择Channel

Channel是OpenClaw特殊于其他软件的地方,它提供了与很多常用软件通讯的能力,但是在国内的通讯软件支持上,好像只有飞书和QQ。

看样子目前只有”Feishu/Lark飞书“可以选了。

3、飞书开放平台的首次配置

打开

点击“开发者后台”:

点击“创建企业自建应用”

点击“创建”

复制这个App ID

点击创建版本:

输入版本号,更新说明:

点击保存:

点击确认发布:

飞书应用已发布。(但是还存在问题

4、在OpenClaw配置飞书

回到OpenClaw配置界面:

输入飞书App ID和App Secret

现在报了“app没有bot”的错,是因为在“飞书开放平台”还没有配置机器人(稍后再配)

先继续下去,回头再来配置飞书。

5、继续配置skill、常见API Key和Hook

问要不要配置skills

选择Yes

面对眼花缭乱的技能,也不知道选择什么,先skip吧:

Google那堆“Yes or No”的全部选“No”。

Hooks三个全选。

这Hooks是什么呢?

参考

"boot-md是启动时自动加载一段markdown文本当作默认引导内容,常用于把你的规则、偏好、项目背景这些在每次启动时塞进去。

command-logger是把你在Clawdbot里执行过的命令和关键操作记一份日志,方便排查问题和复盘。你如果比较在意隐私或不想留痕,就别开它。

session-memory是保存会话相关的状态或记忆,让它下次能延续上下文,体验会更连贯。"
docker images

这样,OpenClaw就配置完毕了。

四、OpenClaw使用

1、OpenClaw管理页面配置

浏览器打开

http://127.0.0.1:18789/

报错:disconnected (1008): pairing required

参考:

查看OpenClaw的配置文件:

vi ~/.openclaw/openclaw.json

在gateway增加这几行:

"controlUi": {
      "enabled": true,
      "allowInsecureAuth": true
    },

并复制 auth下的token(其实也是OpenClaw运行的时候打印的那个token)。

回到

在箭头所指位置贴入token。

现在状态变为Connected

2、在管理页面Chat对话

这是就可以在管理页面的Chat菜单中对话了:

3、在飞书开放平台进一步配置

回到“飞书开放平台”

https://open.feishu.cn/app/cli_xxxx/capability

cli_xxxx就是前面飞书的App ID。

选择 添加应用能力-》按能力添加-》机器人/添加:

打开“权限管理”,选择应用身份权限,在搜索栏分别输入:

获取与发送单聊、群组消息

加上以下权限:

以应用的身份发消息
获取用户基本信息
接收群聊中@机器人消息事件
获取与发送单聊、群组消息
获取会话信息
读写会话信息
获取与更新群组信息
获取通讯录基本信息

BTW:OpenClaw官方已经给了建议的消息类型,参考:

{
  "scopes": {
    "tenant": [
      "aily:file:read",
      "aily:file:write",
      "application:application.app_message_stats.overview:readonly",
      "application:application:self_manage",
      "application:bot.menu:write",
      "cardkit:card:write",
      "contact:user.employee_id:readonly",
      "corehr:file:download",
      "docs:document.content:read",
      "event:ip_list",
      "im:chat",
      "im:chat.access_event.bot_p2p_chat:read",
      "im:chat.members:bot_access",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.group_msg",
      "im:message.p2p_msg:readonly",
      "im:message:readonly",
      "im:message:send_as_bot",
      "im:resource",
      "sheets:spreadsheet",
      "wiki:wiki:readonly"
    ],
    "user": ["aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read"]
  }
}

打开“事件与回调”:

在【事件配置】中,设置订阅方式为“长连接”,并添加所有的“消息与群组事件”:

在【回调配置】中,设置订阅方式为“长连接”,并添加所有的回调:

添加完毕:

记得点击上面的“创建版本”按钮,重新发布服务。

4、在飞书APP对话

登录飞书APP

打开应用:

在手机上“飞书APP”也能进行同样的操作。

5、让OpenClaw读pdf文件

先通过飞书消息,让OpenClaw安装”读PDF文件的skill“

再传个PDF文件给飞书机器人,验证下这个skill的能力:

第一个pdf是扫描版的,OpenClaw貌似读不出来

第二个pdf是文字版的,OpenClaw给出了答案:

6、让OpenClaw整理新闻

整理2026年大模型相关的国内外新闻

7、检查docker情况

最后检查下docker的运行情况,检查docker 镜像:

docker images

查看正在运行的docker容器实例:

docker ps

3b8bcc1ea0b7 是docker的容器id

docker inspect openclaw:local

实际结果如下:

(base) zhanghui@zhanghui:~$ docker inspect openclaw:local
[
    {
        "Id": "sha256:16449701638e695d396a96718c4b8161afd3dad33c3ef5034a0aee2335c75401",
        "RepoTags": [
            "openclaw:local"
        ],
        "RepoDigests": [],
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2026-02-13T19:06:03.920532744+08:00",
        "Config": {
            "User": "node",
            "Env": [
                "PATH=/root/.bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NODE_VERSION=22.22.0",
                "YARN_VERSION=1.22.22",
                "OPENCLAW_PREFER_PNPM=1",
                "NODE_ENV=production"
            ],
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "Cmd": [
                "node",
                "openclaw.mjs",
                "gateway",
                "--allow-unconfigured"
            ],
            "WorkingDir": "/app",
            "ArgsEscaped": true
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 4372503288,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/qtzbt4sep26gtmwssneq8giwe/diff:/var/lib/docker/overlay2/5f5zkt1bt21e1moeut4zc51ym/diff:/var/lib/docker/overlay2/24l8hmx81uol03grayjk25ser/diff:/var/lib/docker/overlay2/z1vqtlei9xg2leim5wc79idfy/diff:/var/lib/docker/overlay2/2o4fponfvevbdcmb0d1u2ydgc/diff:/var/lib/docker/overlay2/jjheu9hxtstmiw18wzdzxkq03/diff:/var/lib/docker/overlay2/ptcnxyncqpd4ki90eajjz0w5t/diff:/var/lib/docker/overlay2/p8rt2jelhhn809tod4qg64em4/diff:/var/lib/docker/overlay2/fiue1kwy3jw7xxm1bccg5fru0/diff:/var/lib/docker/overlay2/b69j934z6zhm6vx61zxd55e4f/diff:/var/lib/docker/overlay2/tc9m6qo3vldk16a331196vuz8/diff:/var/lib/docker/overlay2/e6v7ntt1fvmydvunskmggulfy/diff:/var/lib/docker/overlay2/63dcd465b8d52ec943bdfc26f2dd904382c4b4e61dde76f6d62a421070787fe4/diff:/var/lib/docker/overlay2/a1b9d0c4525d3235aafd070a1e36b3ced66c40c85ff8e5af4c80cedf5abeee09/diff:/var/lib/docker/overlay2/d40326c463dd62ed6395a39443319e187464583f49c8416ce077dd0e5bb51278/diff:/var/lib/docker/overlay2/887f5b80c621d7feab79de4170cac17cfaa225d22a0c6601a076a31f48b6e907/diff:/var/lib/docker/overlay2/69f9aaa2f7bbd46336d3da146e1e31756d4a481ba026d01cf2f5816bc44f433c/diff:/var/lib/docker/overlay2/1d3be1b8ca870e8c4be61f1a45841c8dc5e144c58a0d5546a21e774e86e5972f/diff:/var/lib/docker/overlay2/76f44a2d5358c6a8c2977bbe44391757b68235f1d8f80351d1814c5b9640e81a/diff:/var/lib/docker/overlay2/f4b636a28f71f53e7ecf9d135c3a0099ae1d5eb829f588cf6efa51981ea5b602/diff",
                "MergedDir": "/var/lib/docker/overlay2/ylcs11rn9d70eh9uviuqcq3wa/merged",
                "UpperDir": "/var/lib/docker/overlay2/ylcs11rn9d70eh9uviuqcq3wa/diff",
                "WorkDir": "/var/lib/docker/overlay2/ylcs11rn9d70eh9uviuqcq3wa/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:51e78f04fd47b324ef2558bbed0cb5bc0d6d8e5ca3c56d5b98b91866a88f37bb",
                "sha256:68aa828f1d1bc6059efee0183d54423407cdfa1ab54711b2f8e26065a05de50d",
                "sha256:ccd5d83d9cc85a5f455c153fee7689dc40cea2bb43a6629a2ebf352b7784e414",
                "sha256:c30c607c78a2405f579ddf23b7e0c674350a9144d6a9fb3704ffd332f439583e",
                "sha256:d6deb73d761d1d2de45db3cbf932e7adc75dcc7605a85e1e50656e0ea90380cf",
                "sha256:42cb6bc954fa2500358bf2525967c0b8d42d067181731935853adc521229a366",
                "sha256:d101d84285ff5d79a7c7957a9393b08b1be1e0805b8b55b7642634fd358342c3",
                "sha256:ad164066235a4955d77f1449a222d4fc5fb448987b1fa01068dc351b1ebbe777",
                "sha256:be1011873218c10a5e4aac3d1414004953c77eff3ab4b2d22d1ee3c1122ededb",
                "sha256:c36260393e03c258160348b7690e86a543a0d35389ab4d5d45e96c3fd29ec14f",
                "sha256:3eeb6be69067c95b25e24b147c98116907b70f8aab36152d5242390895d1b9cc",
                "sha256:76e6395c93e0df091249440afbbdff09dd18b9ae7bf7a214024108ef18986f45",
                "sha256:a12b961920fe34bd5f66546924244a34e2c5a80602a977a443c91200bd7282e7",
                "sha256:01683bbe4d09e236e805801f294cfbc5f4c10173f629242d21d400c13e9f963f",
                "sha256:91a7072dd945ccf56b7874748f98482bc82478a6aff1b52594e57b42e3440d8e",
                "sha256:bf8442f9ee9f8317915c004bc76ae3702b1782ff4243bd57d5b8f33ea7999969",
                "sha256:02cf4ca676cc406af451d3679112dd5cd19b336d405a6b58d1d24930005e3417",
                "sha256:4a8533cb7676c6c529085997db0cf5543217aeb6332efff6f85c51b363d090a5",
                "sha256:6541b9ce351a29336c8025e96bf6695cf0e8f410a635f01280dedaddca882c01",
                "sha256:8877347cd4c262549338b86befaa6f9c7ec39e2b9cd1b83b27f487efee854a51",
                "sha256:44affd1a20387d18f5acae54b551ee9311fc5da8bb2b3aeae0720a0678fe1ad2"
            ]
        },
        "Metadata": {
            "LastTagTime": "2026-02-13T19:06:11.220733562+08:00"
        }
    }
]
(base) zhanghui@zhanghui:~$

查看容器详情:

docker inspect 3b8bcc1ea0b7 

实际结果如下:

(base) zhanghui@zhanghui:~$ docker inspect 3b8bcc1ea0b7
[
    {
        "Id": "3b8bcc1ea0b72624031fd79e92c607d8f083bc6db697dc39c7701bf4986a1698",
        "Created": "2026-02-13T12:54:21.091578536Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "node",
            "dist/index.js",
            "gateway",
            "--bind",
            "lan",
            "--port",
            "18789"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 1332,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2026-02-14T23:27:01.311684429Z",
            "FinishedAt": "2026-02-14T00:03:13.538345225Z"
        },
        "Image": "sha256:16449701638e695d396a96718c4b8161afd3dad33c3ef5034a0aee2335c75401",
        "ResolvConfPath": "/var/lib/docker/containers/3b8bcc1ea0b72624031fd79e92c607d8f083bc6db697dc39c7701bf4986a1698/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/3b8bcc1ea0b72624031fd79e92c607d8f083bc6db697dc39c7701bf4986a1698/hostname",
        "HostsPath": "/var/lib/docker/containers/3b8bcc1ea0b72624031fd79e92c607d8f083bc6db697dc39c7701bf4986a1698/hosts",
        "LogPath": "/var/lib/docker/containers/3b8bcc1ea0b72624031fd79e92c607d8f083bc6db697dc39c7701bf4986a1698/3b8bcc1ea0b72624031fd79e92c607d8f083bc6db697dc39c7701bf4986a1698-json.log",
        "Name": "/openclaw-openclaw-gateway-1",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/home/zhanghui/.openclaw:/home/node/.openclaw:rw",
                "/home/zhanghui/.openclaw/workspace:/home/node/.openclaw/workspace:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "openclaw_default",
            "PortBindings": {
                "18789/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "18789"
                    }
                ],
                "18790/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "18790"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "unless-stopped",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                0,
                0
            ],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "private",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": [],
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/acpi",
                "/proc/asound",
                "/proc/interrupts",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/sys/devices/virtual/powercap",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ],
            "Init": true
        },
        "GraphDriver": {
            "Data": {
                "ID": "3b8bcc1ea0b72624031fd79e92c607d8f083bc6db697dc39c7701bf4986a1698",
                "LowerDir": "/var/lib/docker/overlay2/2aec8bac4941d665f3e299840f9d023c593ec390477d4015f121939364b7b694-init/diff:/var/lib/docker/overlay2/ylcs11rn9d70eh9uviuqcq3wa/diff:/var/lib/docker/overlay2/qtzbt4sep26gtmwssneq8giwe/diff:/var/lib/docker/overlay2/5f5zkt1bt21e1moeut4zc51ym/diff:/var/lib/docker/overlay2/24l8hmx81uol03grayjk25ser/diff:/var/lib/docker/overlay2/z1vqtlei9xg2leim5wc79idfy/diff:/var/lib/docker/overlay2/2o4fponfvevbdcmb0d1u2ydgc/diff:/var/lib/docker/overlay2/jjheu9hxtstmiw18wzdzxkq03/diff:/var/lib/docker/overlay2/ptcnxyncqpd4ki90eajjz0w5t/diff:/var/lib/docker/overlay2/p8rt2jelhhn809tod4qg64em4/diff:/var/lib/docker/overlay2/fiue1kwy3jw7xxm1bccg5fru0/diff:/var/lib/docker/overlay2/b69j934z6zhm6vx61zxd55e4f/diff:/var/lib/docker/overlay2/tc9m6qo3vldk16a331196vuz8/diff:/var/lib/docker/overlay2/e6v7ntt1fvmydvunskmggulfy/diff:/var/lib/docker/overlay2/63dcd465b8d52ec943bdfc26f2dd904382c4b4e61dde76f6d62a421070787fe4/diff:/var/lib/docker/overlay2/a1b9d0c4525d3235aafd070a1e36b3ced66c40c85ff8e5af4c80cedf5abeee09/diff:/var/lib/docker/overlay2/d40326c463dd62ed6395a39443319e187464583f49c8416ce077dd0e5bb51278/diff:/var/lib/docker/overlay2/887f5b80c621d7feab79de4170cac17cfaa225d22a0c6601a076a31f48b6e907/diff:/var/lib/docker/overlay2/69f9aaa2f7bbd46336d3da146e1e31756d4a481ba026d01cf2f5816bc44f433c/diff:/var/lib/docker/overlay2/1d3be1b8ca870e8c4be61f1a45841c8dc5e144c58a0d5546a21e774e86e5972f/diff:/var/lib/docker/overlay2/76f44a2d5358c6a8c2977bbe44391757b68235f1d8f80351d1814c5b9640e81a/diff:/var/lib/docker/overlay2/f4b636a28f71f53e7ecf9d135c3a0099ae1d5eb829f588cf6efa51981ea5b602/diff",
                "MergedDir": "/var/lib/docker/overlay2/2aec8bac4941d665f3e299840f9d023c593ec390477d4015f121939364b7b694/merged",
                "UpperDir": "/var/lib/docker/overlay2/2aec8bac4941d665f3e299840f9d023c593ec390477d4015f121939364b7b694/diff",
                "WorkDir": "/var/lib/docker/overlay2/2aec8bac4941d665f3e299840f9d023c593ec390477d4015f121939364b7b694/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/zhanghui/.openclaw",
                "Destination": "/home/node/.openclaw",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/home/zhanghui/.openclaw/workspace",
                "Destination": "/home/node/.openclaw/workspace",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "3b8bcc1ea0b7",
            "Domainname": "",
            "User": "node",
            "AttachStdin": false,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "18789/tcp": {},
                "18790/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "CLAUDE_AI_SESSION_KEY=",
                "CLAUDE_WEB_SESSION_KEY=",
                "CLAUDE_WEB_COOKIE=",
                "HOME=/home/node",
                "TERM=xterm-256color",
                "OPENCLAW_GATEWAY_TOKEN=d255412****1f9e2",
                "PATH=/root/.bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NODE_VERSION=22.22.0",
                "YARN_VERSION=1.22.22",
                "OPENCLAW_PREFER_PNPM=1",
                "NODE_ENV=production"
            ],
            "Cmd": [
                "node",
                "dist/index.js",
                "gateway",
                "--bind",
                "lan",
                "--port",
                "18789"
            ],
            "Image": "openclaw:local",
            "Volumes": null,
            "WorkingDir": "/app",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "Labels": {
                "com.docker.compose.config-hash": "e978391a4eacf9d332809253b1dcd5e875b6f4b72c1481f5816cf3718ce9d7c0",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.depends_on": "",
                "com.docker.compose.image": "sha256:16449701638e695d396a96718c4b8161afd3dad33c3ef5034a0aee2335c75401",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "openclaw",
                "com.docker.compose.project.config_files": "/home/zhanghui/openclaw/docker-compose.yml",
                "com.docker.compose.project.working_dir": "/home/zhanghui/openclaw",
                "com.docker.compose.service": "openclaw-gateway",
                "com.docker.compose.version": "5.0.2"
            }
        },
        "NetworkSettings": {
            "SandboxID": "d1d5ee7e8e810aa0601257b7ebdfa59650e73fb662a8070efd08bda13d4dcd9b",
            "SandboxKey": "/var/run/docker/netns/d1d5ee7e8e81",
            "Ports": {
                "18789/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "18789"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "18789"
                    }
                ],
                "18790/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "18790"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "18790"
                    }
                ]
            },
            "Networks": {
                "openclaw_default": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "openclaw-openclaw-gateway-1",
                        "openclaw-gateway"
                    ],
                    "DriverOpts": null,
                    "GwPriority": 0,
                    "NetworkID": "b6b43ff69d33f2fbc8116e346e3d8da9283758e20bf8350ce71103e3e8f813bb",
                    "EndpointID": "93cf471db50d12c411c1ed83097ccc700edc60d2039829bf72b145b3a62c8632",
                    "Gateway": "172.18.0.1",
                    "IPAddress": "172.18.0.2",
                    "MacAddress": "c2:19:3e:6f:a1:78",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "DNSNames": [
                        "openclaw-openclaw-gateway-1",
                        "openclaw-gateway",
                        "3b8bcc1ea0b7"
                    ]
                }
            }
        }
    }
]

进入docker容器查看运行情况:

docker exec -it 3b8bcc1ea0b7 /bin/bash
ps -ef