当前位置: 首页 > news >正文

三分钟安装window Docker,并与Ubuntu(WSL)建立连接:从0到1避坑指南(附完整代码)

之前对这个技术只是浅尝辄止,这次花了一周时间深入研究,收获很多,整理成文分享出来。

下载

  • 下载:去 Docker 官网 下载 "Docker Desktop for Windows"。选择window amd64版本

  • 安装:双击安装包,一路默认即可。注意:安装过程中如果问你是否使用 "WSL 2 based engine",一定要勾选

  • 启动:安装完后打开 Docker Desktop,等待左下角的小鲸鱼变成绿色(Running)。

  • 设置:点击 Docker Desktop 右上角的齿轮(Settings) -> Resources -> WSL Integration -> 开启 "Enable integration with my default WSL distro" -> 开启你的 Ubuntu 开关 -> 点击 "Apply & Restart"。


更换位置:

Docker安装的东西会很多很占位置,所以建议把数据放在D盘

第一步:正常安装(默认路径)
  1. 运行安装包,不要试图寻找“浏览路径”按钮,直接点 OK 安装。

  2. 安装过程中确保勾选 "Use WSL 2 based engine"(这是默认选中的,别取消)。

  3. 安装完成,点击 "Close and Restart"(重启电脑)。

第二步:立刻修改数据存储位置(核心步骤)

电脑重启并打开 Docker Desktop 后,在还没开始拉取任何镜像之前,马上做这件事:

  1. 点击右上角齿轮图标 (Settings)

  2. 点击左侧菜单 Resources -> Disk image location

  3. 点击 Browse(浏览)。

  4. 选择你 D 盘的一个文件夹(建议新建一个 D:\DockerData)。

  5. 点击 Apply & Restart

做完这一步,Docker 的状态就是:

  • C 盘: 只占用了微不足道的几百 MB(放个启动器)。

  • D 盘: 承担未来所有的几十 GB 镜像和数据。


配置镜像加速(解决拉取卡死的问题)

默认的 Docker Hub 在国外,不配加速器几乎无法下载大型镜像(如 ROS 镜像,动辄 2GB+)。

  • 操作步骤:

    1. 打开 Docker Desktop 界面。

    2. 点击右上角齿轮图标 (Settings)

    3. 点击左侧导航栏的 Docker Engine

    4. 在右侧的文本框里,你会看到一段 JSON 代码。请把下面的内容覆盖进去(或者添加到现有的 registry-mirrors 数组中)

      优化建议:

      如果你的项目访问量较大,建议增加缓存机制。我们团队在优化后,接口响应时间从800ms降到了50ms, 效果非常明显。具体的缓存策略可以根据业务场景调整。

    5. 点击右下角的 "Apply & restart"

    代码解析:

    • 这段代码实现了核心功能逻辑
    • 注意异常处理和边界条件
    • 生产环境建议添加日志记录
    {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://docker.m.daocloud.io","https://huecker.io","https://dockerhub.timeweb.cloud","https://noohub.ru"]
    }

    (注:国内镜像源变动频繁,如果上面这些失效了,可以向导师询问公司内部是否有私有镜像源地址 Harbor)


检查 WSL 集成开关

必须确保 Docker 能被你在 Ubuntu 终端里调用,否则你在 WSL 里敲 docker 命令会提示找不到。

  • 操作步骤:

    1. 在 Settings 里,点击左侧 Resources -> WSL integration

    2. 确保 "Enable integration with my default WSL distro" 是勾选状态。

    3. 关键点: 在下面的 "Enable integration with additional distros" 列表中,找到你刚才安装的 Ubuntu把开关打开

    4. 点击 "Apply & restart"


配置资源限制(防止电脑起飞/卡死)

跑规划控制算法(尤其是涉及编译 C++ 或跑 Gazebo 仿真时),内存消耗极大,这是算法工程师最容易踩的坑

  • 如果不限制: WSL 2 默认会吃掉你电脑 50%~80% 的内存。一旦 Docker 跑满,你的 Windows 界面(飞书、PPT)会瞬间卡死,鼠标都动不了。

  • 如果限制太死: 编译到一半会报错 KilledSignal 9(内存溢出)。

建议方案:wslconfig 文件(在 C:\Users\你的用户名\.wslconfig,没有的话就自己创建:notepad $env:USERPROFILE\.wslconfig ),建议在里面加两行限制。假设你的电脑是 32GB 内存,分给 Linux 24GB 比较合适:

代码解析:

  • 这段代码实现了核心功能逻辑
  • 注意异常处理和边界条件
  • 生产环境建议添加日志记录
[wsl2]
networkingMode=mirrored
memory=24GB
processors=8

假设你的电脑是 16GB 内存,分给 Linux 10GB 比较合适:

代码解析:

  • 这段代码实现了核心功能逻辑
  • 注意异常处理和边界条件
  • 生产环境建议添加日志记录
[wsl2]
networkingMode=mirrored
memory=10GB
processors=8
swap=8GB

保存后退出,在 PowerShell 输入 wsl --shutdown 重启生效。


验证时刻:一切就绪了吗?

做完以上操作后,打开你的 Ubuntu 终端(WSL),输入以下命令进行最终验收:

代码解析:

  • 这段代码实现了核心功能逻辑
  • 注意异常处理和边界条件
  • 生产环境建议添加日志记录
# 1. 验证 Docker 是否通了
docker --version
# 输出应该类似:Docker version 24.0.x, build ...
# 2. 验证能不能从网上拉镜像 (测试网络加速)
docker pull hello-world
# 应该很快显示 Download newer image ... 并且不报错
# 3. 运行它
docker run hello-world

如果看到了 "Hello from Docker!" 的欢迎语,恭喜你!你的环境配置任务完美通关。

http://www.jsqmd.com/news/387776/

相关文章:

  • 揭秘:智能制造AI智能体的云边协同架构,架构师如何平衡成本与性能?
  • AI驱动数字藏品平台智能客服设计:架构师的AI应用经验(附对话流程)
  • Flink与Cassandra集成:高可用大数据存储
  • comsol 锂枝晶模型 多枝晶随机扰动生长,可以直接拿来用,不用自己建模,三种物理场:相场、...
  • AI原生应用领域知识抽取的云计算应用
  • 元数据管理在大数据中的核心作用与应用场景解析
  • 智能工具如何改变程序员的工作方式
  • LLM技术解析:如何打造高效AI原生应用的5大核心要素
  • 实时AI原生应用中的低延迟推理能力实现方案
  • 大数据建模中的A_B测试:数据驱动的决策方法
  • 豆包AI时代已至:企业如何借力GEO实现高效获客? - 品牌2025
  • 二分+贪心
  • 《LLM》学习笔记
  • ffmpeg提取视频序列到opentoonz序列帧名称参考
  • 完整教程:【论文自动阅读】NeoVerse: Enhancing 4D World Model with in-the-wild Monocular Videos
  • 《强化学习》笔记
  • 关于opentoonz直接导入视频会闪退崩溃的问题的解决方法
  • Maven配置加载:动态替换的艺术
  • 你如何看待代码规范?
  • ffmpeg提取视频序列命令参考
  • 题解:洛谷 P2415 集合求和
  • DeepSeek 总结的duckdb-behavioral插件说明
  • ffmpeg视频提取序列在bash脚本
  • many years gone
  • 完整教程:第0章|栏目简介:把 Mac M2 Ultra 变成“家庭私有 AI 生产机房”
  • linux设备驱动的异步通知和异步IO
  • AI电话数字员工怎么选?四大主流平台技术路径、部署方式与ROI深度解析
  • 复杂经济系统仿真:ABM 方法、算法与实践指南
  • 实验室设备整机研发开发设计如何创新?2026智能化与用户体验融合新趋势解读 - 匠言榜单
  • 金融领域元学习在投资组合动态调整中的应用