在window终端创建docker容器的问题

问题:

错误原因:

PowerShell 换行符错误

PowerShell 中换行应使用反引号`而非反斜杠 \,错误的换行符导致命令解析中断。

在 Windows 的 PowerShell 中运行 Docker 命令时遇到「sudo 无法识别」的问题,这是因为 Windows 系统原生不支持 sudo 命令(该命令是 Linux/Unix 系统的权限管理工具)。以下是具体原因和解决方案:


问题原因

  1. 命令语法差异
    Windows PowerShell 与 Linux 终端的命令体系不同,sudo 在 Windows 中默认不存在。
  2. Docker Desktop 权限机制
    在 Windows 中,Docker Desktop 安装时会自动配置权限,无需使用 sudo 即可执行 docker 命令。

解决方案

1. 直接运行 Docker 命令(推荐)

移除命令中的 sudo,直接执行:

powershell 复制代码
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 的镜像。若不存在,需先构建或拉取镜像:

powershell 复制代码
docker build -t parallel .  # 构建镜像(需 Dockerfile)
# 或
docker pull parallel       # 从仓库拉取(若镜像已发布)

关键参数说明

参数 作用 参考来源
--privileged 授予容器特权模式(允许访问宿主机设备)
--shm-size=2G 设置共享内存大小(解决 /dev/shm 容量问题)
-v 宿主机路径:容器路径 目录挂载(需注意 Windows 路径格式)
/bin/bash -c 指定容器启动后执行的命令(此处为保持容器运行的循环脚本)

常见问题排查

  1. 错误提示 Unable to find image 'parallel:latest' locally

    说明镜像不存在,需构建或拉取镜像。

  2. 挂载目录权限问题

    确保 Windows 的共享目录已开启 Docker 访问权限(Docker Desktop 设置 → Resources → File Sharing)。

  3. 端口冲突

    检查 2201 端口是否已被其他程序占用。


相关推荐
AugustSkys2 小时前
从 Docker 到 Containerd:Kubernetes 时代容器运行时完全指南
docker·容器·kubernetes·containerd
前端世界6 小时前
Linux服务器实战:NTP时间同步、SELinux权限与rsyslog日志管理,一次搞懂三大运维问题
linux·运维·服务器
Android系统攻城狮6 小时前
Linux Gstreamer深度解析之gst_audio_converter_new调用流程与实战(二十)
linux·运维·服务器·gstreamer音视频·音视频进阶
莫陌尛.6 小时前
Docker MySQL 删表卡死、执行超时(MDL锁阻塞)问题复盘与根治方案
mysql·docker·容器
海宇服务6 小时前
零信任架构实战:基于海宇对外投资历史查询服务构建自动化供应商准入网关
运维·人工智能·架构·自动化
上海云盾-小余6 小时前
BGP 高防底层原理:TCP 异常流量识别与清洗机制
运维·网络·tcp/ip
言乐68 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
蓝速科技11 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
星辰徐哥11 小时前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion
H_oRIZoN_11 小时前
Linux入门DAY41(51 单片机 串口与通信协议)
linux·运维·单片机