问题:
错误原因:
PowerShell 换行符错误
PowerShell 中换行应使用反引号`而非反斜杠 \,错误的换行符导致命令解析中断。
在 Windows 的 PowerShell 中运行 Docker 命令时遇到「sudo 无法识别」的问题,这是因为 Windows 系统原生不支持 sudo
命令(该命令是 Linux/Unix 系统的权限管理工具)。以下是具体原因和解决方案:
问题原因
- 命令语法差异
Windows PowerShell 与 Linux 终端的命令体系不同,sudo
在 Windows 中默认不存在。 - Docker Desktop 权限机制
在 Windows 中,Docker Desktop 安装时会自动配置权限,无需使用sudo
即可执行docker
命令。
解决方案
1. 直接运行 Docker 命令(推荐)
移除命令中的 sudo
,直接执行:
docker run -d --privileged --shm-size=2G `-p 2201:22 `--name parallel `-v d:\src\shared:/root/shared `parallel `/bin/bash -c "while true; do sleep 1; done"
4. 验证镜像是否存在
执行 docker images
检查是否存在名为 parallel
的镜像。若不存在,需先构建或拉取镜像:
docker build -t parallel . # 构建镜像(需 Dockerfile)
# 或
docker pull parallel # 从仓库拉取(若镜像已发布)
关键参数说明
参数 | 作用 | 参考来源 |
---|---|---|
--privileged | 授予容器特权模式(允许访问宿主机设备) | |
--shm-size=2G | 设置共享内存大小(解决 /dev/shm 容量问题) | |
-v 宿主机路径:容器路径 | 目录挂载(需注意 Windows 路径格式) | |
/bin/bash -c | 指定容器启动后执行的命令(此处为保持容器运行的循环脚本) |
常见问题排查
-
错误提示
Unable to find image 'parallel:latest' locally
说明镜像不存在,需构建或拉取镜像。 -
挂载目录权限问题
确保 Windows 的共享目录已开启 Docker 访问权限(Docker Desktop 设置 → Resources → File Sharing)。 -
端口冲突
检查2201
端口是否已被其他程序占用。