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


相关推荐
亦世凡华、34 分钟前
快速部署:在虚拟机上安装 CentOS 7 的详细步骤
linux·运维·经验分享·centos·安装教程
星图辛某人1 小时前
《Linux命令行和shell脚本编程大全》第四章阅读笔记
linux·运维·笔记
Hellc0073 小时前
使用 Docker 部署 RabbitMQ 并实现数据持久化
docker·rabbitmq·ruby
孤寂大仙v3 小时前
【Linux笔记】理解文件系统(上)
linux·运维·笔记
沉默的八哥4 小时前
K8S高可用Web应用部署方案
运维
winyh54 小时前
Vite 打包后Nginx部署配置
运维·nginx
钢板兽4 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试
运维小贺5 小时前
Nginx常用的模块
运维·nginx·正则表达式