Skip to content

Latest commit

 

History

History
391 lines (267 loc) · 6.68 KB

File metadata and controls

391 lines (267 loc) · 6.68 KB

iFlow Docker CLI 使用指南

iFlow Docker CLI 是一个用于管理 iFlow Docker 容器的命令行工具。它简化了容器的安装、运行、管理等操作,并自动处理 SSH 密钥和工作目录的挂载。

安装

从源码编译

# 克隆仓库
git clone https://github.com/cc11001100/iflow-cli-docker.git
cd iflow-cli-docker

# 编译
go build -o iflow-docker

# (可选)安装到系统路径
sudo mv iflow-docker /usr/local/bin/

快速开始

1. 安装 iFlow 镜像

iflow-docker install

这会从 Docker Hub 拉取最新的 iFlow CLI 镜像。

2. 配置工作目录(可选)

# 设置工作目录
iflow-docker config set --workspace ~/my-projects

# 查看当前配置
iflow-docker config show

3. 运行容器

# 启动交互式容器(默认启动 zsh)
iflow-docker run

# 指定容器名称
iflow-docker run --name my-dev

# 指定工作目录
iflow-docker run --workspace ~/code

# 不挂载 SSH 密钥
iflow-docker run --no-ssh

# 运行特定命令
iflow-docker run iflow --version

命令参考

install - 安装镜像

从 Docker Hub 拉取 iFlow CLI 镜像。

iflow-docker install

run - 运行容器

创建并启动一个新的 iFlow 容器实例。

iflow-docker run [flags] [command...]

Flags:

  • -n, --name <name>: 指定容器名称
  • -w, --workspace <path>: 指定工作目录路径
  • --no-ssh: 不挂载 SSH 密钥

示例:

# 启动交互式容器
iflow-docker run

# 指定容器名称和工作目录
iflow-docker run --name my-dev --workspace ~/projects

# 运行特定命令
iflow-docker run iflow config show

自动挂载:

  • SSH 密钥: ~/.ssh/root/.ssh (只读)
  • 工作目录: 配置的工作目录 → /workspace

start - 启动容器

启动一个或多个已存在但已停止的容器。

iflow-docker start <container-id-or-name> [container-id-or-name...] [flags]

Flags:

  • -d, --detach: 后台启动,不进入交互模式

示例:

# 启动容器并进入交互模式
iflow-docker start my-dev

# 后台启动容器
iflow-docker start my-dev -d

# 启动多个容器
iflow-docker start container1 container2

注意:run 命令不同,start 用于启动已存在的容器,而 run 用于创建新容器。

list - 列出容器

显示所有 iFlow 容器实例。

iflow-docker list [flags]

别名: ls

Flags:

  • -a, --all: 显示所有容器,不仅仅是 iFlow 容器

示例:

# 列出 iFlow 容器
iflow-docker list

# 列出所有容器
iflow-docker list --all

stop - 停止容器

停止一个或多个运行中的容器。

iflow-docker stop <container-id-or-name> [container-id-or-name...]

示例:

# 停止单个容器
iflow-docker stop my-dev

# 停止多个容器
iflow-docker stop my-dev my-test

remove - 删除容器

删除一个或多个容器。

iflow-docker remove <container-id-or-name> [container-id-or-name...]

别名: rm

示例:

# 删除单个容器
iflow-docker remove my-dev

# 删除多个容器
iflow-docker rm my-dev my-test

uninstall - 卸载镜像

从本地删除 iFlow CLI 镜像。

iflow-docker uninstall

image - 镜像管理

管理 iFlow CLI Docker 镜像。

iflow-docker image <subcommand> [flags]

子命令:

image list - 列出镜像

列出本地或远程的 iFlow CLI 镜像版本。

iflow-docker image list [flags]

别名: ls

Flags:

  • -r, --remote: 显示远程可用镜像信息
  • -a, --all: 显示本地和远程镜像

示例:

# 列出本地镜像
iflow-docker image list

# 查看远程可用镜像
iflow-docker image list --remote

# 查看所有镜像
iflow-docker image list --all

输出说明:

  • 列表中会用 * 标记当前配置使用的镜像
  • 显示镜像的仓库、标签、ID、大小、创建时间等信息

config - 管理配置

查看或修改 iFlow Docker CLI 的配置。

# 查看当前配置
iflow-docker config show

# 设置配置项
iflow-docker config set [flags]

config set Flags:

  • -w, --workspace <path>: 设置工作目录
  • -i, --image <name>: 设置镜像名称
  • --mount-ssh: 启用自动挂载 SSH
  • --no-mount-ssh: 禁用自动挂载 SSH

示例:

# 设置工作目录
iflow-docker config set --workspace ~/mywork

# 设置镜像名称
iflow-docker config set --image cc11001100/iflow-cli:0.3.22

# 启用自动挂载 SSH
iflow-docker config set --mount-ssh

# 禁用自动挂载 SSH
iflow-docker config set --no-mount-ssh

配置文件

配置文件位于: ~/.iflow-cli-docker/config.yaml

默认配置:

workspace: ~/iflow-workspace
image_name: cc11001100/iflow-cli:latest
auto_mount_ssh: true
container_prefix: iflow-cli

使用场景

开发环境隔离

# 为不同项目创建独立容器
iflow-docker run --name project-a --workspace ~/projects/project-a
iflow-docker run --name project-b --workspace ~/projects/project-b

Git 仓库操作

SSH 密钥自动挂载,可直接使用 Git:

iflow-docker run --workspace ~/my-repo
# 容器内:
# cd /workspace
# git clone git@github.com:user/repo.git

临时测试环境

# 启动临时容器,退出后自动清理
iflow-docker run iflow --version

持久化开发环境

# 创建命名容器
iflow-docker run --name my-env

# 停止但不删除
iflow-docker stop my-env

# 稍后重新启动(进入交互模式)
iflow-docker start my-env

# 或后台启动
iflow-docker start my-env -d

容器特性

  • 默认 Shell: Zsh with Oh My Zsh
  • 预装工具:
    • iFlow CLI (0.3.22)
    • Git
    • Node.js 22
    • 其他开发工具
  • 工作目录: /workspace
  • 自动挂载: SSH 密钥(只读)

故障排除

Docker 连接失败

如果遇到 "Cannot connect to Docker daemon" 错误:

# 检查 Docker 是否运行
docker ps

# macOS: 确保 Docker Desktop 已启动
# Linux: 确保 Docker 服务运行
sudo systemctl status docker

容器列表为空

# 使用 --all 查看所有容器
iflow-docker list --all

SSH 密钥无法使用

# 确保 SSH 密钥存在
ls -la ~/.ssh/

# 检查权限
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub

更新

# 更新镜像
iflow-docker uninstall
iflow-docker install

# 更新 CLI 工具(从源码重新编译)
cd iflow-cli-docker
git pull
go build -o iflow-docker
sudo mv iflow-docker /usr/local/bin/

许可证

Apache 2.0 License

支持