欢迎光临
我们一直在努力

Windows 下 Docker 安装与使用全攻略(含避坑指南)

告别“在我机器上好好的”魔咒,一个容器搞定所有环境问题!

“这代码在我电脑上跑得好好的,怎么一到你那就挂了呢?” —— 这句话是不是听着耳熟?作为一名开发者,你可能无数次被环境差异搞得焦头烂额。

Python版本不对、Node.js依赖冲突、数据库配置麻烦……这些问题那是非常熟悉的。

Docker 这个神器能帮你彻底解决这些烦恼!

这篇文章,我来手把手教你在Win11上安装和使用Docker,让你享受一致的开发体验。

一、为什么Windows开发者也需要Docker?

你可能会想:“Docker不是主要在Linux上用的吗?我在Windows上折腾这个干嘛?”

问得好!这里有几个实实在在的理由:

1. 开发环境一致性

你写代码用的是Windows,但服务器跑的是Linux?没问题!Docker容器在任何系统上运行的行为都是一样的。你再也不用担心“本地能跑,上线就崩”的尴尬。

2. 快速搭建开发环境

想用MySQL?一条命令搞定。需要Redis?再加一条。不用手动下载、安装、配置,省时省力。

3. 保持系统整洁

每个应用都在独立的容器里运行,不会污染你的Windows系统。卸载也简单,删除容器即可。

4. 团队协作标准化

新同事加入项目?给他一个Docker配置文件,几分钟就能把开发环境跑起来,不用再花半天配环境。

5. 学习新技术成本低

想试试MongoDB?用Docker跑一个,玩够了就删掉,完全不留下任何痕迹。

简单说,Docker就像是个万能应用打包盒,让你在Windows上也能轻松享受Linux般的开发体验。

二、Docker是个啥?简单解释一下

想象一下:你做了个美味的蛋糕(你的应用),Docker帮你把蛋糕连同盘子、叉子、餐巾纸(所有依赖)一起打包进一个密封盒(容器)。这个盒子在任何桌子上(任何系统)打开,都能吃到一模一样的蛋糕。

传统方式是:你告诉别人“需要烤箱、面粉、糖……”,别人自己准备,结果可能做出个煎饼。而Docker是直接把成品打包送过去。

技术上讲,Docker使用容器化技术,比虚拟机轻量得多,启动速度秒级,资源占用也少。

三、安装前的准备工作

在开始之前,确保你的Win11满足以下条件:

  • 系统版本:Windows 11 64位(家庭版、专业版等都行)
  • 内存:至少4GB(建议8GB以上)
  • 存储空间:至少60GB可用空间
  • 虚拟化支持:需要在BIOS/UEFI中开启(后面会教你怎么检查)

小贴士:Win11家庭版没有Hyper-V,但可以通过WSL 2完美运行Docker,所以家庭版用户不用担心!

四、一步步安装Docker

步骤1:检查并开启虚拟化

  • 按 Ctrl+Shift+Esc打开任务管理器
  • 切换到“性能”标签页
  • 查看右下角“虚拟化”状态
  • 如果显示“已启用”,如下图所示:

    恭喜,跳过这步。

    如果“已禁用”,需要重启电脑进入BIOS/UEFI设置,找到虚拟化技术(通常叫Intel VT-x或AMD-V)并开启。

    步骤2:安装WSL 2(Docker的好搭档)

    WSL(Windows Subsystem for Linux)让Windows能原生运行Linux程序,WSL 2性能更好,是Docker的推荐后端。

  • 以管理员身份打开PowerShell

  • 输入以下命令:

    # 启用WSL功能
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    # 启用虚拟机平台功能
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

  • 重启电脑(必须的,别偷懒!)

  • 重启后,再次以管理员身份打开PowerShell,执行:

    # 安装WSL
    wsl —install

  • 启动之后,你会看到如下界面:

  • 验证安装:运行 wsl –list –verbose

    wsl —list —verbose

  • 步骤3:安装Docker Desktop

  • 访问Docker官网下载安装包:https://www.docker.com/products/docker-desktop
  • 双击下载的 Docker Desktop Installer.exe
  • 安装过程中,你只需要等待即可
  • 安装完成后,启动 Docker ,会让你登录,你可以选择不登录,直接进来:

    步骤4:验证安装

    打开PowerShell或命令提示符,输入:

    docker —version

    看到版本号输出,比如 Docker version 29.1.3, build f52814d,说明安装成功。

    再试个经典的:

    docker run hello-world

    如果看到“Hello from Docker!”的欢迎信息,说明你可以正式使用 Docker 了,但。。。如果不出意外,你会看到这样的结果:

    也就是找不到镜像,具体的错误信息:

    Unable to find image 'hello-world:latest' locally
    docker: Error response from daemon: failed to resolve reference "docker.io/library/hello-world:latest": failed to do request: Head "https://registry-1.docker.io/v2/library/hello-world/manifests/latest": dialing registry-1.docker.io:443 container via direct connection because Docker Desktop has no HTTPS proxy: connecting to registry-1.docker.io:443: dial tcp 185.60.216.169:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

    Docker 试图从Docker Hub(官方镜像仓库)下载hello-world镜像,但是网络连接失败了。

    此时我们可以配置镜像加速器(科学上网)。

    步骤5:配置镜像加速

    我试了很多加速地址,就这个好使:https://docker.1ms.run

    {
    "registry-mirrors": [
    "https://docker.1ms.run"
    ],
    "features": {
    "buildkit": true
    }
    }

    配置好以后,用 docker info 看一下:

    这个时候再运行 docker run hello-world 就可以正常下载了:

    PS:如果镜像加速不生效,可以直接在 docker 命令中指定从哪里查询、下载、使用。比如:

    docker search docker.1ms.run/mysql

    五、Docker常用命令演示

    安装好了,现在来试试。以下命令你肯定会经常用到:

    1. 镜像相关命令(镜像好比容器的“安装包”)

    # 搜索镜像(比如搜索MySQL)
    docker search docker.1ms.run/mysql

    # 拉取镜像到本地(下载)
    docker pull nginx

    # 查看本地所有镜像
    docker images

    # 删除镜像
    docker rmi 镜像名或ID

    2. 容器相关命令(容器是镜像运行后的实例)

    # 运行容器(基本格式)
    docker run [选项] 镜像名

    # 运行nginx容器,并映射端口
    docker run —name my-web –p 8080:80 –d nginx
    # –name 给容器起名
    # -p 端口映射(主机端口:容器端口)
    # -d 后台运行

    # 查看运行中的容器
    docker ps

    # 查看所有容器(包括停止的)
    docker ps –a

    # 停止容器
    docker stop 容器名或ID

    # 启动已停止的容器
    docker start 容器名或ID

    # 重启容器
    docker restart 容器名或ID

    # 删除容器(必须先停止)
    docker rm 容器名或ID

    # 强制删除运行中的容器
    docker rm –f 容器名或ID

    # 查看容器日志(调试神器)
    docker logs 容器名或ID

    # 进入容器内部(像SSH一样)
    docker exec –it 容器名或ID /bin/bash

    3. 实战演练:运行一个Web服务器

    让我们实际操练一下,运行一个Nginx服务器:

    # 1. 拉取nginx镜像(如果还没拉取过)
    docker pull docker.1ms.run/nginx

    # 2. 运行容器
    docker run —name my-nginx –p 8080:80 –d docker.1ms.run/nginx

    # 3. 查看容器是否运行
    docker ps

    # 4. 打开浏览器访问 http://localhost:8080
    # 看到Nginx欢迎页,成功!

    # 5. 查看容器日志
    docker logs my-nginx

    # 6. 进入容器内部看看
    docker exec –it my-nginx /bin/bash
    # 进去后可以执行 ls、cat 等命令,输入 exit 退出

    # 7. 停止容器
    docker stop my-nginx

    # 8. 删除容器
    docker rm my-nginx

    执行步骤及结果:

    4. 其他实用命令

    # 查看Docker系统信息
    docker info

    # 查看磁盘使用情况
    docker system df

    # 清理未使用的镜像、容器等
    docker system prune

    # 一次性清理所有未使用的资源(谨慎使用)
    docker system prune –a

    六、解决常见问题

    1. 拉取镜像慢如蜗牛?

    这个在前面我已经演示过如何配置,这里再重申一下,因为这个我相信是绝大多少人都会碰到的情况,甚至有时候配了镜像加速也会失效,直至劝退、放弃使用 Docker。

    在Docker Desktop中:

  • 右键系统托盘中的Docker图标 → Settings

  • 选择“Docker Engine”

  • 在配置文件中添加:

    {
    "registry-mirrors": [
    "镜像加速地址1",
    "镜像加速地址2"
    ]
    }

  • 点击“Apply & Restart”

  • 有时候你配置的镜像加速不起作用,那就多试几个,还可以在拉取镜像时指定加速地址,像这样:

    docker pull docker.1ms.run/nginx

    2. Docker启动失败?

    • 检查WSL是否安装正确:运行 wsl –list –verbose
    • 确保虚拟化已开启(任务管理器中查看)
    • 尝试以管理员身份运行Docker Desktop

    3. 命令记不住怎么办?

    记住最常用的几个就行:docker run、docker ps、docker stop、docker rm。

    其他需要时查文档,用多了自然记住。

    七、接下来玩什么?

    现在你已经掌握了Docker的基本操作,可以尝试更高级的玩法:

  • 定制自己的镜像:编写Dockerfile,把自己的应用打包成镜像
  • 多容器编排:使用Docker Compose一键启动多个关联容器(比如Web应用+数据库+缓存)
  • 数据持久化:学习使用卷(volumes)保存容器数据
  • 网络配置:让多个容器互相通信
  • Docker的世界很大,我们使用它的关键不是记住所有命令,而是理解容器化的思想——一次打包,到处运行。


    欢迎关注、点赞、收藏,下次遇到Docker问题不迷路! 🐳

    赞(0)
    未经允许不得转载:171主机测评 » Windows 下 Docker 安装与使用全攻略(含避坑指南)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址