wslc 完整教程 —— WSL 容器 CLI
wslc 完整教程 —— WSL 容器 CLI
依据 Microsoft Learn《在 WSL 上开始使用容器》(https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers)
并结合本机wslc 3.0.3.0的实际--help输出整理。
所有命令均可用wslc <命令> --help查看实时帮助。
目录
- 概述与先决条件
- 安装与验证
- 全局用法与帮助体系
- 快速上手:运行第一个容器
- run 命令完整选项
- 容器生命周期管理
- 容器内交互:exec / attach / cp / export / logs / stats / events
- 映像管理
- build 构建自定义映像
- 网络管理
- 卷管理
- 注册表登录(login / logout)
- 系统信息与容器会话
- 完整实战:构建并运行自己的应用
- 故障排除与磁盘回收
- 常用命令速查表
1. 概述与先决条件
wslc.exe 是 Windows 上 WSL 自带的容器 CLI 工具(无需 Docker Desktop、无需单独引擎),用于生成、传输和运行 Linux 容器。命令风格与 Docker CLI 高度相似,很多 Docker 用户可以直接迁移。
先决条件
| 项 | 说明 |
|---|---|
| WSL ≥ 2.9.3 | 运行 wsl --update 更新;wsl --version 确认版本 |
| 已安装 WSL | 安装方式见 https://learn.microsoft.com/zh-cn/windows/wsl/install |
| VS Code + WSL 扩展(可选) | 编辑代码、调试 WSL 上的容器化项目 |
| Windows Terminal(可选) | 多终端体验更好 |
wslc 命令总览
wslc [全局选项] [<命令>] [选项]
命令:
container 管理容器(create/start/stop/run/exec/logs/... 的完整前缀形式)
image 管理映像(build/pull/tag/save/load/import/...)
network 管理网络
registry 管理注册表凭据(login/logout)
settings 在默认编辑器中打开 wslc 用户设置文件(.yaml)
system 系统级命令(info/events/session)
volume 管理卷
attach 附加到容器
build 从 Dockerfile 生成映像
create 创建容器
exec 在正在运行的容器中执行命令
events 监视容器事件
export 将容器的文件系统导出为 tar 存档
images 列出映像
import 从 tarball 导入映像
info 显示系统信息
inspect 检查对象
kill 终止一个或多个正在运行的容器
list 列出容器
load 加载映像
login 登录到注册表
logout 从注册表注销
logs 查看容器日志
pull 拉取映像
push 将映像上传到注册表
remove 移除容器
restart 重新启动容器
rmi 移除映像
run 运行容器
save 保存映像
start 启动容器
stats 显示容器资源使用统计信息
stop 停止容器
tag 标记映像
version 显示版本信息
全局选项:
--session 指定要使用的会话
-v --version 显示版本信息
-? --help 显示帮助
注意:顶层短命令(
run、list、pull…)与带前缀的完整形式(container run、container list、image pull…)等价,例如wslc run=wslc container run。
2. 安装与验证
wslc.exe 随 WSL 发行,没有单独的引擎要安装。
# 1. 更新 WSL 到最新版本(需要 ≥ 2.9.3)
wsl --update
# 2. 确认 WSL 版本
wsl --version
# 3. 确认 wslc 可用并查看版本
wslc version
# 4. 查看系统信息(客户端/会话服务版本、活动会话列表)
wslc info
# 5. 用内置 hello-world 映像测试(本地没有会自动拉取)
wslc run --rm hello-world
看到 "Hello from the WSL container!" 之类的消息即说明工作正常。
实用帮助命令:
wslc --help # 列出所有可用命令
wslc <COMMAND> --help # 查看某个命令的详细信息,如 wslc run --help
wslc container list # 列出运行中的容器
wslc container list --all # 列出所有容器(含已停止)
wslc image list # 列出本机映像
wslc stats # 查看运行中容器资源占用
3. 全局用法与帮助体系
用法: wslc [全局选项] [<命令>] [选项]
--session <name>:指定要操作的容器会话(wslc 支持多会话,默认使用默认会话;会话管理见第 13 节)。- 任何命令后加
--help/-?查看该命令的帮助。 - 短名与长名:多数命令有别名,如
wslc container ls/wslc container ps/wslc list/wslc ps都是列出容器;wslc images/wslc image ls都是列出映像。
4. 快速上手:运行第一个容器
# 在一次性容器中运行命令(-it 交互终端,--rm 结束后自动删除容器)
wslc run --rm -it ubuntu:latest bash -c "echo Hello world from WSL container!"
# 后台启动一个 nginx 网页服务,把宿主机 8080 映射到容器 80 端口
wslc run -d --rm -p 8080:80 --name web nginx
# 请求正在运行的网页服务
curl localhost:8080
# 列出运行中的容器
wslc container list
# 在运行中的容器里再执行一条命令
wslc exec web cat /etc/os-release
# 停止容器(因用了 --rm,停止后容器自动删除)
wslc container stop web
要点:
-d/--detach:后台运行;不加则前台运行(Ctrl+C 退出)。-p 主机端口:容器端口:发布端口,让 Windows 能通过localhost访问。-it:-i保持标准输入打开,-t分配伪终端,交互式 shell 需要-it。--rm:容器停止后自动移除,不占磁盘。--name:给容器起个可读名字,后续命令可直接用名字代替 ID。
5. run 命令完整选项
用法: wslc container run [选项] <image> [<command>] [<arguments>...]
别名: wslc run
| 选项 | 说明 |
|---|---|
-d, --detach | 后台(分离)运行 |
-it | 交互 + 伪终端(-i --interactive + -t --tty) |
--rm | 容器停止后自动移除 |
-p, --publish 主机:容器 | 发布端口(可多次) |
-P, --publish-all | 发布所有 EXPOSE 端口到随机主机端口 |
--name | 指定容器名 |
-e, --env KEY=VALUE | 设置环境变量(可多次) |
--env-file | 从文件读取环境变量 |
-v, --volume | 绑定挂载卷(源:目标) |
--mount | 以挂载规格挂载文件系统 |
--tmpfs | 在容器内某路径挂载 tmpfs |
--entrypoint | 覆盖镜像 ENTRYPOINT |
-w, --workdir | 容器内工作目录 |
-u, --user | 以指定用户运行(name|uid|uid:gid) |
-h, --hostname | 容器主机名 |
--domainname | 容器域名 |
-m, --memory | 内存限制(如 512M、1G) |
--cpus | CPU 数(如 0.5、1、2.5) |
--shm-size | /dev/shm 大小(如 64M、1G) |
--network | 指定要加入的网络 |
--network-alias | 网络范围内的别名 |
--ip | 在网络上分配固定 IPv4 地址 |
--dns / --dns-option / --dns-search | 自定义 DNS |
--pull | 映像拉取策略:always | missing(默认)| never |
--gpus | 透传 GPU 设备(all 表示全部) |
--health-cmd / --health-interval / --health-retries / --health-start-period / --health-timeout | 健康检查配置 |
--no-healthcheck | 禁用镜像自带的健康检查 |
--stop-signal | 停止时发送的信号 |
--stop-timeout | 停止前等待秒数(-1 表示无超时) |
-l, --label | 添加元数据标签 |
--cidfile | 将容器 ID 写入指定文件 |
--ulimit | ulimit(<name>=<soft>[:<hard>],-1 无限制) |
--session | (全局)指定会话 |
示例:
# 限制资源 + 环境变量 + 挂载
wslc run -d --name app -m 1G --cpus 2 -e MODE=prod `
-v E:\data:/data `
--network-alias app1 myimage
# 固定主机端口 + 健康检查
wslc run -d -p 8080:80 --health-cmd "curl -f http://localhost/ || exit 1" `
--health-interval 30s --health-retries 3 nginx
6. 容器生命周期管理
wslc container [attach|cp|create|exec|export|inspect|kill|logs|list|prune|remove|restart|run|start|stats|stop]
6.1 创建(不启动)
用法: wslc container create [选项] <image> [<command>] [<arguments>...]
别名: wslc create
选项与 run 完全相同(见第 5 节),但没有 -d(创建本身不运行)。
wslc create --name mydb -e POSTGRES_PASSWORD=secret postgres:16
wslc start mydb # 之后单独启动
6.2 启动 / 停止 / 重启 / 终止
wslc start <容器名或ID>... # 启动已停止的容器
wslc stop <容器名或ID>... # 停止(优雅,等信号处理)
wslc restart <容器名或ID>... # 重启
wslc kill <容器名或ID>... # 强制立即终止(SIGKILL)
stop 选项:
| 选项 | 说明 |
|---|---|
-s, --signal | 要发送的信号(默认容器配置的 STOPSIGNAL,未配置则 SIGTERM) |
-t, --time | 终止前等待的秒数(默认容器配置的停止超时) |
6.3 删除
wslc remove <容器名或ID>... # 删除容器(需先停止;运行中的需先 stop/kill 或加 -f,视版本支持)
wslc container prune # 移除所有已停止的容器(清盘利器)
6.4 列出
用法: wslc container list [选项]
别名: wslc container ls, wslc container ps, wslc list, wslc ls, wslc ps
| 选项 | 说明 |
|---|---|
-a, --all | 显示所有状态(默认只显示运行中) |
-n, --last N | 显示最近创建的 N 个容器(含所有状态) |
-l, --latest | 显示最新创建的容器(含所有状态) |
-f, --filter | 按条件过滤输出 |
--format | 输出格式 json 或 table(默认 table) |
-s, --size | 显示总文件大小 |
-q, --quiet | 仅输出容器 ID |
--no-trunc | 不截断输出 |
wslc ps # 运行中的容器
wslc ps -a # 全部容器
wslc list --format json # JSON 输出,便于脚本处理
wslc list -q # 只要 ID 列表
wslc list -f "name=web" # 过滤
6.5 检查详情
wslc container inspect <容器ID或名>...
| 选项 | 说明 |
|---|---|
-s, --size | 显示总文件大小 |
-f, --format | 输出格式(单行输出为 JSON,默认缩进 JSON) |
wslc inspect <容器ID> # 顶层短名同样可用
wslc container inspect -f "{{.State.Status}}" web
7. 容器内交互
7.1 exec —— 在运行中的容器里执行命令
用法: wslc container exec [选项] <container-id> <command> [<arguments>...]
别名: wslc exec
| 选项 | 说明 |
|---|---|
-d, --detach | 分离模式运行 |
-i, --interactive | 保持标准输入打开 |
-t, --tty | 分配伪终端 |
-u, --user | 以指定用户执行(name|uid|uid:gid) |
-w, --workdir | 指定工作目录 |
-e, --env / --env-file | 注入环境变量 |
wslc exec web cat /etc/os-release
wslc exec -it web bash # 进入容器 shell
wslc exec -u root -w /app web ls -la # 以 root、指定目录
7.2 attach —— 附加到容器主进程
wslc attach <容器ID或名>
把当前终端接到容器的主进程(PID 1)的输入/输出上(wslc container attach 同义)。
7.3 cp —— 容器与本地之间拷文件
用法: wslc container cp [选项] <source> <target>
本地→容器: wslc container cp LOCAL_PATH CONTAINER:PATH
容器→本地: wslc container cp CONTAINER:PATH LOCAL_PATH
stdin→容器: wslc container cp - CONTAINER:PATH
| 选项 | 说明 |
|---|---|
-q, --quiet | 静默 |
-L, --follow-link | 跟随源中的符号链接 |
-a, --archive | 归档模式(为兼容 Docker CLI 而保留) |
wslc cp .\app.conf web:/etc/app/conf.conf # Windows 文件进容器
wslc cp web:/var/log/app.log .\app.log # 容器日志拷出来
7.4 export —— 导出容器文件系统
wslc export <容器ID> -o .\container-rootfs.tar
7.5 logs —— 查看日志
用法: wslc container logs [选项] <container-id>
别名: wslc logs
| 选项 | 说明 |
|---|---|
-f, --follow | 持续跟踪输出(类似 tail -f) |
-n, --tail | 只显示末尾 N 行 |
-t, --timestamps | 显示时间戳 |
--since / --until | 时间范围(Unix 秒或 RFC3339,如 2024-01-15T10:30:00Z) |
--details | 显示日志附加详情 |
wslc logs web
wslc logs -f --tail 50 -t django # 实时跟踪最后 50 行,带时间戳
wslc logs --since 2h web # 最近 2 小时
7.6 stats —— 资源使用统计
用法: wslc stats [选项] [<container-id>...]
别名: wslc container stats
显示运行中容器的 CPU、内存、网络 I/O、块 I/O、PID 快照。
| 选项 | 说明 |
|---|---|
-a, --all | 显示所有状态 |
--format | json 或 table(默认 table) |
--no-trunc | 不截断 |
wslc stats # 所有运行中容器
wslc stats web django # 指定容器
7.7 events —— 监视容器事件
用法: wslc events [选项]
别名: wslc system events
| 选项 | 说明 |
|---|---|
-f, --filter | 按条件过滤 |
--since / --until | 时间范围 |
--format | json 或 table |
wslc events
wslc events -f "name=web" --since 1h
8. 映像管理
wslc image [build|remove|inspect|list|load|import|prune|pull|push|save|tag]
8.1 pull 拉取
用法: wslc image pull [选项] <image>
别名: wslc pull
| 选项 | 说明 |
|---|---|
-a, --all-tags | 拉取仓库中所有 tag |
-q, --quiet | 抑制详细输出 |
wslc pull ubuntu:latest
wslc pull --all-tags nginx
wslc pull myregistry.io/myteam/app:1.2.3
8.2 list 列出
用法: wslc image list [选项]
别名: wslc image ls, wslc images
| 选项 | 说明 |
|---|---|
-a, --all | 显示所有(默认隐藏中间层映像) |
--digests | 显示摘要 |
-f, --filter | 过滤 |
--format | json 或 table |
-q, --quiet | 仅输出 ID |
--no-trunc | 不截断 |
--verbose | 详细信息 |
wslc images
wslc image list -f "reference=*nginx*"
8.3 tag 打标签
用法: wslc image tag [选项] <source> <target>
别名: wslc tag
wslc tag helloworld-django myregistry.io/myteam/helloworld-django:1.0
8.4 inspect / remove / prune
wslc image inspect <image>... # 查看映像元数据(-f 指定格式)
wslc image remove <image>... # 别名: wslc rmi, wslc image rm, wslc image delete
wslc rmi -f <image> # -f 强制删除(即使被使用); --no-prune 不连带删除父层
image remove 选项:
| 选项 | 说明 |
|---|---|
-f, --force | 强制删除 |
--no-prune | 不删除未标记的父级 |
wslc image prune # 删除所有悬空(dangling)映像
wslc image prune -a -f # 删除所有未被任何容器使用的映像,不确认
wslc image prune --filter "until=24h" # 只删 24 小时未使用的
8.5 save / load —— 导出导入完整映像(tar)
用法: wslc image save [选项] <image>... # 别名: wslc save
用法: wslc image load [选项] # 别名: wslc load
| 选项 | 说明 |
|---|---|
save -o, --output | 输出 tar 路径 |
load -i, --input | 输入 tar 路径 |
load -q, --quiet | 抑制进度 |
# 导出(可一次多个)
wslc save -o .\nginx.tar nginx:latest
# 在另一台机器上导入
wslc load -i .\nginx.tar
8.6 import —— 从文件系统 tarball 造映像
用法: wslc image import [选项] <file> [<image>]
别名: wslc import
| 选项 | 说明 |
|---|---|
--no-trunc | 不截断输出 |
wslc import .\rootfs.tar myimage:1.0 # 用已有文件系统 tar 直接建映像
8.7 push 推送
用法: wslc image push [选项] <image>
别名: wslc push
| 选项 | 说明 |
|---|---|
-a, --all-tags | 推送所有 tag |
-q, --quiet | 抑制详细输出 |
wslc login myregistry.io # 先登录(见第 12 节)
wslc push myregistry.io/myteam/app:1.0
9. build 构建自定义映像
用法: wslc image build [选项] <path>
别名: wslc build
<path> 为构建上下文目录;用 - 表示从 stdin 读取 tar 存档或 Dockerfile。
| 选项 | 说明 |
|---|---|
-t, --tag | 给生成的映像打标签 |
-f, --file | Dockerfile 路径(- 从 stdin 读) |
--build-arg KEY=VALUE | 构建时变量 |
--target | 只构建到多阶段中的某个目标阶段 |
--no-cache | 不使用缓存 |
--pull | 始终尝试拉取更新的基础映像 |
--secret id=NAME[,type=env|file][,env=VAR|src=PATH] | 向构建公开机密(默认取环境变量 NAME) |
-o, --output | 构建输出目标(type=local,dest=path 或 type=tar,dest=out.tar) |
--progress | 进度输出类型:auto(默认) / tty / plain / quiet |
--iidfile | 将映像 ID 写入指定文件 |
-l, --label | 设置元数据 |
--verbose | 详细输出 |
示例:
# Containerfile(Dockerfile 同名文件)
FROM python:3
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
wslc build -t helloworld-django . # 基本构建
wslc build -t app:1.0 -f Containerfile.dev . # 指定 Dockerfile
wslc build -t app:1.0 --build-arg VERSION=1.0 --no-cache .
wslc build -t app:1.0 --target builder . # 多阶段只构建某阶段
wslc build -t app --secret id=api_key,type=file,src=.env.apikey .
wslc build -t app -o type=tar,dest=app.tar . # 构建完直接输出 tar
构建上下文建议放在 WSL 文件系统(\\wsl$)内,跨文件系统访问会显著变慢。
10. 网络管理
wslc network [create|remove|inspect|list|prune|connect|disconnect]
# 创建网络(默认 bridge 驱动)
wslc network create mynet
wslc network create -d bridge --subnet 172.28.0.0/16 --gateway 172.28.0.1 mynet
wslc network create -l env=prod --internal internal-net # 限制外部访问的内部网络
# 查看 / 检查 / 删除 / 清理
wslc network list
wslc network inspect mynet
wslc network remove mynet
wslc network prune # 删除所有未使用的网络
# 动态连接 / 断开容器
wslc network connect mynet web
wslc network disconnect mynet web
network create 选项:
| 选项 | 说明 |
|---|---|
-d, --driver | 驱动(默认 bridge) |
-o, --opt | 驱动特定选项 |
-l, --label | 元数据 |
--gateway | 子网 IPv4/IPv6 网关 |
--internal | 限制对外部访问 |
--ip-range | 从 CIDR 子范围分配容器 IP |
--subnet | CIDR 子网 |
11. 卷管理
wslc volume [create|remove|inspect|list|prune]
# 创建命名卷(驱动: guest 或 vhd,默认 guest)
wslc volume create mydata
wslc volume create -d vhd -o size=10G myvhd
wslc volume create -l tier=hot mydata
# 查看 / 检查 / 删除 / 清理
wslc volume list
wslc volume inspect mydata
wslc volume remove mydata
wslc volume prune # 删除未使用的本地卷
容器使用卷的三种方式:
# 1) 命名卷
wslc run -d -v mydata:/var/lib/postgresql/data postgres:16
# 2) 绑定挂载(宿主路径进容器)—— Windows 盘符路径可直接写
wslc run -d -v E:\data:/data myimage
wslc run -d -v E:\data:/data:ro myimage # 只读
# 3) tmpfs / 挂载规格
wslc run -d --tmpfs /tmp:size=256m myimage
wslc run -d --mount type=bind,source=E:\data,destination=/data myimage
✅ 实测(wslc 3.0.3.0):
-v E:\data:/data这样直接写 Windows 盘符路径即可挂载,读写双向同步正常(容器内写入的文件在 Windows 侧立即可见,:ro只读生效)。⚠️ 不要照抄 Docker/WSL 的
/mnt/e/...写法:wslc 会话里不存在/mnt/e(不是完整发行版,未自动挂载 Windows 盘)。若写-v /mnt/e/data:/data,守护进程会在 VM 内自动创建同名空目录挂进去——命令不报错,但挂的是空目录,并不是 E 盘!
12. 注册表登录
wslc registry [login|logout]
用法: wslc login [选项] [<server>]
别名: wslc registry login
| 选项 | 说明 |
|---|---|
-u, --username | 用户名 |
-p, --password | 密码或个人访问令牌(PAT) |
--password-stdin | 从 stdin 读取密码/PAT |
# 不指定 server 时使用会话默认注册表
wslc login
# 指定注册表
wslc login -u myuser -p mytoken myregistry.io
echo $token | wslc login -u myuser --password-stdin myregistry.io
# 推送前确保已登录
wslc push myregistry.io/myteam/app:1.0
# 注销
wslc logout myregistry.io
13. 系统信息与容器会话
13.1 系统信息
用法: wslc system info [选项]
别名: wslc info
显示 wslc 客户端与会话管理服务的版本,以及活动会话列表。
| 选项 | 说明 |
|---|---|
--format | json 或 table(默认 table) |
wslc info
wslc info --format json
13.2 会话(session)
wslc 通过后台"会话"服务管理容器;可以创建多个隔离会话,并用全局选项 --session 指定目标。
wslc system session [enter|list|run|shell|terminate]
wslc system session list # 列出活动会话
wslc system session list --verbose # 带详细信息
wslc system session shell # 附加到(默认)会话
wslc system session run <cmd> [args] # 在无 TTY 的会话中直接运行命令
wslc system session enter # 进入临时会话
wslc system session terminate # 终止(默认)会话
# 配合全局 --session 操作特定会话
wslc --session work1 container list
wslc --session work2 run -d --name nginx2 nginx
13.3 设置
wslc settings # 在系统默认编辑器中打开 wslc 用户设置文件(.yaml);
# 首次运行会创建文件,所有设置以默认值注释形式列出
wslc settings reset # 将设置重置为内置默认值
14. 完整实战:构建并运行自己的应用
以 Django Hello World 为例(也可换成任意自己的项目)。
# 1. 在 WSL 终端(如 Ubuntu)克隆项目 —— 代码放在 WSL 文件系统里性能更好
git clone https://github.com/<username>/helloworld-django.git
cd helloworld-django
# 2.(可选)用 VS Code + WSL 扩展打开项目
code .
- 在项目根目录添加
Containerfile:
FROM python:3
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
# 4. 构建映像(在包含 Containerfile 的目录执行)
wslc build -t helloworld-django .
# 5. 确认映像已创建
wslc image list
# 6. 运行容器并发布端口
wslc run -d --rm -p 8000:8000 --name django helloworld-django
# 7. 确认运行状态与日志
wslc container list
wslc container logs django # 或 wslc logs -f django 实时跟踪
# 8. 浏览器打开 http://localhost:8000/ 查看应用
# 并确认它跑在 Linux 上:
wslc exec django uname # 输出 Linux → 跑在 WSL 2 内核上
# 9. 停止
wslc container stop django
至此已用 wslc.exe 在 Windows 上完成了 WSL 2 支持的 Linux 容器的构建与运行,配合 VS Code 可继续开发、调试。
15. 故障排除与磁盘回收
15.1 诊断容器/映像问题
wslc container inspect <container-id> # 状态、配置、网络、挂载等全量信息
wslc container logs <container-id> # 退出原因、报错栈
wslc image inspect <image> # 映像配置、层信息
wslc events # 实时事件流(start/stop/die 等)
排障常用组合:
wslc container list --all # 看状态是 Exited 还是死循环 Restarting
wslc logs -n 100 -t <容器> # 最近 100 行带时间戳
wslc inspect -f "{{.State.ExitCode}}" <容器> # 取退出码
15.2 回收磁盘空间
wslc container prune # 删除所有已停止容器
wslc image prune # 删除悬空映像
wslc image prune -a -f # 删除所有未使用映像
wslc network prune # 删除未使用网络
wslc volume prune # 删除未使用卷
映像和停止的容器都会占用磁盘(最终落在 WSL VHDX 里)。配合
wsl --manage <发行版> --set-sparse或压缩 VHDX 可进一步缩小磁盘占用。
15.3 其他参考
- WSL 常规故障排除:https://learn.microsoft.com/zh-cn/windows/wsl/troubleshooting
- wslc 问题反馈:https://github.com/microsoft/WSL/issues
16. 常用命令速查表
日常高频
| 场景 | 命令 |
|---|---|
| 跑一次即毁的命令 | wslc run --rm -it <image> <cmd> |
| 后台起服务 | wslc run -d --name X -p 8080:80 <image> |
| 进容器 shell | wslc exec -it X bash |
| 看日志(实时) | wslc logs -f X |
| 看资源占用 | wslc stats |
| 停止 / 删除 | wslc stop X → wslc remove X |
| 列出容器/映像 | wslc ps -a / wslc images |
全部命令别名对照
| 完整形式 | 顶层短名 | 其他别名 |
|---|---|---|
container run | run | — |
container create | create | — |
container exec | exec | — |
container list | list | container ls / container ps / ls / ps |
container start | start | — |
container stop | stop | — |
container kill | kill | — |
container restart | restart | — |
container remove | remove | — |
container logs | logs | — |
container stats | stats | — |
container attach | attach | — |
container export | export | — |
container inspect | inspect | — |
container cp | cp | — |
image list | images | image ls |
image pull | pull | — |
image push | push | — |
image build | build | — |
image tag | tag | — |
image save | save | — |
image load | load | — |
image import | import | — |
image remove | rmi | image rm / image delete |
system info | info | — |
system events | events | — |
registry login | login | — |
registry logout | logout | — |
与 Docker 的主要差异
- 无需 Docker Desktop / docker daemon:引擎即 WSL 本身。
- 顶层直接给了短命令(
wslc run),不必写docker container run。 - 有 session(会话) 概念,可用
--session在不同隔离环境间切换。 - 文件拷贝用
wslc cp(与docker cp相同语义)。 - 卷驱动支持
guest/vhd(volume create -d vhd)。 - 设置文件为
.yaml(wslc settings直接打开编辑)。