在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 端口是否已被其他程序占用。


相关推荐
Johny_Zhao12 分钟前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
zwjapple1 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
一心0922 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上2 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊2 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
代码老y3 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程3 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
DuelCode4 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
你想考研啊6 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins
Code blocks6 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins