无需Docker Desktop,如何在Windows上运行本地项目的Dockerfile
跨WSL Ubuntu Docker运行Windows本地项目容器的方案
方法1:直接访问WSL挂载的Windows目录
WSL会自动挂载Windows的磁盘分区,C盘对应/mnt/c、D盘对应/mnt/d,以此类推:
- 打开Ubuntu WSL终端,切换到你的项目路径(示例:Windows项目在
C:\Projects\my-docker-app):cd /mnt/c/Projects/my-docker-app - 执行标准Docker命令构建并运行:
# 构建镜像 docker build -t my-app-image . # 运行容器(示例映射8080端口到容器80端口) docker run -d -p 8080:80 my-app-image - 注意:Windows文件系统在WSL中的访问性能略低,适合小型项目或临时构建。
方法2:复制项目到WSL本地文件系统
为了获得更好的性能,建议将项目复制到WSL的本地目录:
- 在WSL中创建项目目录:
mkdir -p ~/Projects/my-docker-app - 从挂载的Windows目录复制项目文件:
cp -r /mnt/c/Projects/my-docker-app/* ~/Projects/my-docker-app/ - 切换到WSL本地目录执行Docker操作:
cd ~/Projects/my-docker-app docker build -t my-app-image . docker run -d -p 8080:80 my-app-image
方法3:Windows编辑+WSL文件系统存储
兼顾Windows编辑便利性和WSL性能,可将项目放在WSL文件系统中:
- 在Windows资源管理器地址栏输入
\\wsl$\Ubuntu(替换Ubuntu为你的WSL发行版名称),进入WSL文件系统 - 在该路径下创建项目目录,将Dockerfile和项目文件移入
- 回到WSL终端,切换到对应目录(示例:
cd ~/my-docker-app),执行Docker构建和运行命令
关键注意事项
- 端口访问:WSL中Docker容器的映射端口,Windows本地直接用
localhost:端口号即可访问 - 文件权限:若出现Docker无法读取文件的权限问题,可在WSL中执行
chmod -R 755 项目目录调整权限 - Docker状态:确保WSL中的Docker daemon处于运行状态,检查命令:
systemctl status docker,启动命令:systemctl start docker
内容的提问来源于stack exchange,提问作者Kamil
相关产品推荐
相关产品推荐

