一篇搞定!Docker Desktop + WSL2 从安装配置到核心应用实战

一篇搞定!Docker Desktop + WSL2 从安装配置到核心应用实战
文章目录1、安装Docker Desktop1.1 访问Docker官网获取安装包1.2 支持命令行安装1.3 首次安装Docker Desktop需要配置WSL环境或者Hyper-V2、WSL needs updating2.1 此处遇到WSL需要更新的警告信息,按照提示进行更新即可。2.2 powershell下执行命令`wsl --install`2.3 WSL更新后重启Docker Desktop2.4 WSL设置与工作页面3、WSL(Windows Subsystem for Linux)3.1 说明3.2 官方文档3.3 查看wsl版本3.4 WSL 版本功能说明3.5 WSL命令4、通过Docker Desktop运行容器5、通过Docker Desktop管理镜像5.1 镜像管理5.2 容器管理5.3 支持AI Models和MCP生态

1、安装Docker Desktop

Docker Desktop 是一个多合一软件包,用于构建镜像、运行容器等等。

Docker Desktop 包括 Docker Compose、Docker Engine 和 Docker CLI组件,对开发者使用Docker环境非常友好。

1.1 访问Docker官网获取安装包

访问docs.docker.top下载Docker Desktop,下载地址为https://docs.docker.top/get-started/introduction/get-docker-desktop/index.htm

下载好安装包后,双击Docker Desktop Installer.exe运行安装程序。默认情况下,Docker Desktop 安装在C:\Program Files\Docker\Docker。

在这里插入图片描述


在这里插入图片描述

1.2 支持命令行安装

比如Windows下使用Powershell窗口执行命令Start-Process 'Docker Desktop Installer.exe' -Wait install进行安装。

支持修改安装路径--installation-dir=<path>更改默认安装位置 (C:\Program Files\Docker\Docker)。 PowerShell,需要使用ArgumentList参数

  • 示例
    Start-Process 'Docker Desktop Installer.exe' -Wait -ArgumentList 'install', '--installation-dir=D:\Docker'

1.3 首次安装Docker Desktop需要配置WSL环境或者Hyper-V

Docker Desktop 的功能在 WSL 和 Hyper-V 上保持一致,对任何架构都没有偏好。Hyper-V 和 WSL 各有优缺点,具体取决于您的特定设置和计划用例。

根据个人电脑环境推荐建议去选择,此处用的是WSL2。

2、WSL needs updating

此处安装 Docker Desktop 后打开提示需要WSL配置

2.1 此处遇到WSL需要更新的警告信息,按照提示进行更新即可。

Your version of Windows Subsystem for Linux (WSL) is too old. Run the command below to update or for more information, visit .the Microsoft WSL documentation⁠

在这里插入图片描述

2.2 powershell下执行命令wsl --install

通过Win+R快捷键弹出运行弹窗,输入powershell回车,即可打开 Windows PowerShell,输入命令回车等待安装完成。

在这里插入图片描述

2.3 WSL更新后重启Docker Desktop

在这里插入图片描述
在这里插入图片描述

2.4 WSL设置与工作页面

WSL更新完成后,自动打开了如下欢迎页面。

在这里插入图片描述

可以在Win下主动搜索WSL及WSL Settings,如下所示。

3、WSL(Windows Subsystem for Linux)

3.1 说明

适用于 Linux 的 Windows 子系统(WSL)允许开发人员直接在 Windows 上运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),无需传统虚拟机或双启动设置的开销。

3.2 官方文档

https://learn.microsoft.com/zh-cn/windows/wsl/

3.3 查看wsl版本

在powershell窗口输入命令wsl --list --verbose查看

C:\Users\Administrator>wsl --list --verbose NAME STATE VERSION * docker-desktop Running 2 

3.4 WSL 版本功能说明

在这里插入图片描述

3.5 WSL命令

  • 安装命令wsl --install
  • 更新命令wsl --update
  • 检查状态wsl --status
  • 检查版本wsl --version
  • 关机wsl --shutdown
  • 查询可用的linux分发版wsl --list --online
  • 查询已安装的linux分发版wsl --list --verbose
  • 设置默认的linux分发版wsl --set-default <Distribution Name>
  • 注销或卸载linux分发版wsl --unregister <DistributionName>
  • 启动环境wsl ~
  • 从PowerShell或CMD运行特定的linux分发版wsl --distribution <Distribution Name> --user <User Name>
  • 返回通过 WSL 2 安装的 Linux 分发版的 IP 地址wsl hostname -I
  • 装载磁盘wsl --mount <DiskPath>
  • 卸载磁盘wsl --unmount <DiskPath>
C:\Users\Administrator>wsl -l-v NAME STATE VERSION * docker-desktop Running 2 C:\Users\Administrator>wsl --version WSL 版本: 2.6.2.0 内核版本: 6.6.87.2-1 WSLg 版本: 1.0.71 MSRDC 版本: 1.2.6353 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.26100.1-240331-1435.ge-release Windows: 10.0.19045.6332 C:\Users\Administrator>wsl --status 默认分发: docker-desktop 默认版本: 2 C:\Users\Administrator>wsl --list--online 以下是可安装的有效分发的列表。 使用“wsl.exe --install<Distro>”安装。 NAME FRIENDLY NAME Ubuntu Ubuntu Ubuntu-24.04 Ubuntu 24.04 LTS openSUSE-Tumbleweed openSUSE Tumbleweed openSUSE-Leap-16.0 openSUSE Leap 16.0 SUSE-Linux-Enterprise-15-SP7 SUSE Linux Enterprise 15 SP7 SUSE-Linux-Enterprise-16.0 SUSE Linux Enterprise 16.0 kali-linux Kali Linux Rolling Debian Debian GNU/Linux AlmaLinux-8 AlmaLinux OS 8 AlmaLinux-9 AlmaLinux OS 9 AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10 AlmaLinux-10 AlmaLinux OS 10 archlinux Arch Linux FedoraLinux-43 Fedora Linux 43 FedoraLinux-42 Fedora Linux 42 Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS OracleLinux_7_9 Oracle Linux 7.9 OracleLinux_8_10 Oracle Linux 8.10 OracleLinux_9_5 Oracle Linux 9.5 openSUSE-Leap-15.6 openSUSE Leap 15.6 SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6 

4、通过Docker Desktop运行容器

Win+R唤起运行弹窗,输入powershell回车打开命令行窗口

输入命令docker run -d -p 8080:80 docker/welcome-to-docker拉去镜像到本地并通过容器运行。

此处因8080端口占用,所以改为8090端口,拉去镜像后,运行容器。访问localhost:8090如下图所示,说明容器运行成功。

PS C:\Users\Administrator>docker run -d-p8080:80 docker/welcome-to-docker Unable to find image 'docker/welcome-to-docker:latest' locally latest: Pulling from docker/welcome-to-docker 9745203f5d34: Pull complete fd372c3c84a2: Pull complete 828fa206d77b: Pull complete bdaad27fd04a: Pull complete 958a74d6a238: Pull complete c1d2dc189e38: Pull complete 9824c27679d3: Pull complete a5585638209e: Pull complete 1babe895ddff: Download complete Digest: sha256:c4d56c24da4f009ecf8352146b43497fe78953edb4c679b841732beb97e588b0 Status: Downloaded newer image for docker/welcome-to-docker:latest f0aa6e50dd81fe27381040340314a0cd8f3d6a2d43e0d90f5bceb4648fddf10e PS C:\Users\Administrator>docker run -d-p8080:80 docker/welcome-to-docker c7bb3cde31567fc15744c3874b41a0ccf27331de3cad164995023ebb6a9b4d12 docker: Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint youthful_darwin (c984ddce22434a6e2092167d0d71ccb60182ca9dcccefb6138792d1298f92b51): Bind for0.0.0.0:8080 failed: port is already allocated Run 'docker run --help'formore information PS C:\Users\Administrator>docker run -d-p8090:80 docker/welcome-to-docker 7783de463a74800d8cb7479b18926179573b288855a4bdb736ce24ceccaf672b PS C:\Users\Administrator>
在这里插入图片描述

查看镜像和容器

  • 查看镜像docker image list
  • 查看容器docker container list

ps:我说8080端口怎么占用了,上面没仔细看,我同一个镜像分别用8080、8090端口启动了2个容器,呜呜呜

PS C:\Users\Administrator>docker image list i Info → U In Use IMAGE ID DISK USAGE CONTENT SIZE EXTRA docker/welcome-to-docker:latest c4d56c24da4f 22.2MB 6.03MB U mcp/playwright@sha256:53da89d1da3dfbb61c10f707c1713cfee1f870f7fba5334e126c6c765e37db56 53da89d1da3d 1.4GB 397MB PS C:\Users\Administrator>docker container list CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7783de463a74 docker/welcome-to-docker "/docker-entrypoint.…"7 minutes ago Up 7 minutes 0.0.0.0:8090->80/tcp, [::]:8090->80/tcp focused_nash f0aa6e50dd81 docker/welcome-to-docker "/docker-entrypoint.…"8 minutes ago Up 8 minutes 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp vibrant_elion PS C:\Users\Administrator>

5、通过Docker Desktop管理镜像

Docker Desktop 通过简化不同环境中应用程序的设置、配置和兼容性,简化了容器管理。
支持交互页面往往比仅支持命令窗口交互更友好,对于前期学习者来说。

5.1 镜像管理

可以通过页面直接管理镜像、容器、存储卷,调整K8s、大模型、Mcp等配置。

打开Docker Desktop主页面,点击Images发现docker/welcome-to-docker镜像在本地为运行状态。

有2个容器是运行状态,对应上面创建的8080和8090端口的服务。

在这里插入图片描述


在这里插入图片描述

5.2 容器管理

  • 点击容器,可以查看容器运行logs日志
  • 点击Exec,可以进入容器shell
  • 点击Inspect,可以获取有关容器的详细信息。

可以执行各种操作,例如暂停、恢复、启动或停止容器,或者浏览日志、绑定挂载、Exec、文件和统计信息选项卡。

在这里插入图片描述

5.3 支持AI Models和MCP生态

很久没有使用Docker Desktop,本次重新使用,发现已经把AI Models和MCP生态接入进来了,期待接下来的体验。

在这里插入图片描述
Powered By niaonao
WSL文档 https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers
Docker Desktop简介 https://docs.docker.top/get-started/introduction/get-docker-desktop/index.htm

Read more

Windows/Linux双平台保姆教程:用DDNS-GO v6.7.6实现免费内网穿透(替代花生壳)

从零构建你的专属动态域名服务:告别付费内网穿透,拥抱开源DDNS-GO 最近和几个独立开发者朋友聊天,大家普遍吐槽的一个点就是内网穿透服务。无论是为了远程调试家里的NAS,还是想临时给客户演示一个部署在本地开发机的Web应用,传统的方案要么像花生壳这类工具需要付费且流量受限,要么配置复杂得让人望而却步。更别提一些云服务商提供的穿透服务,按流量计费的模式对于高频测试来说,成本完全不可控。其实,如果你手头有一个公网IP(哪怕是动态变化的),或者你的IPv6环境是通畅的,完全没必要依赖第三方付费服务。今天,我们就来深入聊聊如何利用一个名为 DDNS-GO 的开源神器,亲手搭建一套稳定、免费且完全自控的动态域名解析系统,彻底摆脱对商业内网穿透工具的依赖。 DDNS-GO 的核心价值在于它的“桥梁”作用。它持续监测你本地网络的公网IP地址(包括IPv4和IPv6),一旦发现IP发生变化,就立刻调用云解析服务商(如阿里云、腾讯云DNSPod、Cloudflare等)的API,自动将你指定的域名更新解析到新的IP上。这样一来,无论你的网络环境如何变动,通过一个固定的域名,你总能从外网访问到家里的

By Ne0inhk
Flutter 组件 dart_dev 适配鸿蒙 HarmonyOS 实战:效能基座方案,构建全生命周期自动化开发流水线与研发套件治理架构

Flutter 组件 dart_dev 适配鸿蒙 HarmonyOS 实战:效能基座方案,构建全生命周期自动化开发流水线与研发套件治理架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 dart_dev 适配鸿蒙 HarmonyOS 实战:效能基座方案,构建全生命周期自动化开发流水线与研发套件治理架构 前言 在鸿蒙(OpenHarmony)生态迈向大规模工业化协同、涉及海量跨端功能并发验证及严苛代码交付质量标准的背景下,如何实现研发流程的“机器化”约束,已成为决定团队产出稳定性与效能上限的关键。在鸿蒙设备这类强调 AOT 极致性能与多包(HAP/HSP)协同部署的环境下,如果研发环节依然依赖分散的散装脚本或非标的 Git 工作流,由于由于环境配置的微差异,极易由于由于“本地通过,远端爆炸”导致集成交付效率的高频损耗。 我们需要一种能够统一任务调度(Task Runner)、支持全量规范校验且具备“一站式”研发脚本治理能力的基座方案。 dart_dev 为 Flutter 开发者引入了“研发即代码(Dev-as-Code)

By Ne0inhk
Linux 底层深入:目标文件、ELF 格式与程序加载全解析

Linux 底层深入:目标文件、ELF 格式与程序加载全解析

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 目标文件:编译后的 “半成品” * 1.1 目标文件的本质 * 1.2 目标文件的生成与验证 * 1.3 目标文件的核心问题:未解析的外部符号 * 二. ELF 文件:Linux 下的 “万能二进制格式” * 2.1 ELF 文件的四大类型 * 2.2 ELF 文件的核心结构 * 2.2.1 ELF 头:文件的 “身份证” * 2.2.

By Ne0inhk

OpenClaw(AI Agent) Ubuntu 系统部署教程(附带接入微信教程,使用阿里云百炼免费API)

众所周知,最近OpenClaw 的火爆证实了大模型Agent的可能性,博主也是本着探索的精神尝试着体验了一下,发现这个东西意外的好用。它的好处这里就不赘述了,这篇博客意在给各位提供一个参考,具体每个人遇到的问题不同,也可以在评论区里讨论 一、准备工作 1、开通百炼API OpenClaw 支持添加自定义模型提供商或与OpenAI/Anthropic 兼容的代理服务。我们选择阿里云的百炼平台,是因为它有免费的初始额度。 我们首先要开通阿里云的百炼账号: 大模型服务平台百炼控制台https://bailian.console.aliyun.com/cn-beijing/?tab=model#/model-market 开通之后,会赠送我们多个模型的免费token,但是要注意是有时限和额度的,如果不想产生额外费用,可以开启模型的免费额度用完即停功能,这里就不赘述了。 我们需要在密钥管理处申请一个API key,用于调用模型,位于网页的左下角,请记住你的API key,等下会用到   2、前置库的安装 注意,如果你使用阿里云服务器,会有一键安装OpenC

By Ne0inhk