docker-cli 安装

安装 Docker CLI 核心步骤总结(Debian 12 环境) 1. 前置检查(确认容器无 CLI + 系统版本) # 1. 进入 OpenClaw 容器(替换为你的容器名/ID) docker exec -it openclaw-gateway /bin/bash # 2. 切换到 roo

安装 Docker CLI 核心步骤总结(Debian 12 环境)

1. 前置检查(确认容器无 CLI + 系统版本)

# 1. 进入 OpenClaw 容器(替换为你的容器名/ID)
docker exec -it openclaw-gateway /bin/bash

# 2. 切换到 root 用户(安装需要权限,Alpine 无密码,Debian 直接回车)
su root

# 3. 检查是否已有 CLI(无则提示 command not found)
docker --version

# 4. 确认系统版本(已验证是 Debian 12)
cat /etc/os-release

2. 安装 Docker CLI(Debian 12 专属命令)

# 1. 更新 apt 源
apt update

# 2. 安装依赖包
apt install -y curl gnupg2 apt-transport-https ca-certificates software-properties-common

# 3. 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4. 添加 Docker 软件源(适配 Debian 12 bookworm)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

# 5. 安装仅 CLI 客户端(不装 dockerd 服务)
apt update && apt install -y docker-ce-cli

# 6. 验证安装成功(输出 Docker 版本号)
docker --version

3. 让 CLI 永久生效(容器重启不丢失)

# 1. 退出容器(执行 2 次 exit:先退出 root,再退出容器)
exit
exit

# 2. 提交修改后的容器为新镜像(保留 CLI)
docker commit openclaw-gateway openclaw-with-cli:latest

# 3. 修改 docker-compose.yml:将 gateway 镜像替换为新镜像
# image: 原 OpenClaw 镜像
# 替换为:
# image: openclaw-with-cli:latest

4. 验证 CLI 能访问 DinD(核心!)

# 1. 重启 Compose 服务
docker-compose down && docker-compose up -d

# 2. 进入 gateway 容器,验证 CLI 连接 DinD(TCP 方式)
docker exec -it openclaw-gateway su node -c "docker info"

# 预期结果:输出 DinD 容器内 Docker 引擎信息(而非宿主机),证明 CLI 可用

关键补充(避坑要点)

  1. 系统适配:如果是 Alpine 容器,替换安装命令为 apk update && apk add --no-cache docker-cli
  2. 权限说明:安装需 root 用户,但运行 CLI 用普通 node 用户即可;
  3. 核心逻辑:CLI 通过 DOCKER_HOST=tcp://sandbox:2375 访问 DinD,无需挂载 sock 文件,避开目录报错;
  4. 永久生效:仅 docker commit 这一步就能保留 CLI,无需重新编译源码/构建镜像。

总结

  1. 核心命令:Debian 12 装 CLI 用 apt install docker-ce-cli,Alpine 用 apk add docker-cli
  2. 永久生效:通过 docker commit 提交新镜像,无需编译源码;
  3. 验证关键:CLI 能输出 DinD 的 docker info,说明调用成功。

整个流程 5 分钟完成,全程围绕「免编译、保留 TCP、宿主机可控」的核心需求,无多余操作,适配你的 DinD 沙箱场景。

LICENSED UNDER CC BY-NC-SA 4.0
评论