windows10 上安装 docker

windows 10 上安装 docker

官方目前给的方案是利用 Docker Desktop 来安装 docker 环境

一、安装前准备工作

1.1 检查系统要求

  • Windows 10 64 位:Home 或 Pro 2004(内部版本 19041)或更高版本,或者 Enterprise 或 Education 1909(内部版本 18363)或更高版本。
  • 在 Windows 上启用 WSL 2 (适用于 Linux 的 Windows 子系统)功能。
  • 要在 Windows 10 上成功运行 WSL 2,需要满足以下硬件先决条件:
  • 具有二级地址转换 (SLAT) 的64 位处理器(可下载微软官方Coreinfo工具检测)
  • 4GB 系统内存
  • 启用硬件虚拟化支持。
  • 下载并安装 Linux kernel 升级包

1.2 启用硬件虚拟化支持

右键开始打开【应用和功能(F)】-->程序和功能-->启用或关闭windows功能-->【适用于Linux的windows子系统】和【虚拟机平台】打勾。

点击确认后会提示重启电脑,重启过程可能需要占用较长的时间(15-30分钟),请耐心等待。

重启完成后,打开任务管理器-->性能,查看虚拟化是否已启用:

1.3 下载并安装Linux kernel升级包

参考资料:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package

在windows cmd中使用systeminfo查看系统类型,根据x64或者ARM64下载不同的内核更新包

开始安装:

二、下载安装Docker Desktop

完成安装前准备后,下载并安装Docker Desktop,可以从官方下载 https://desktop.docker.com/win/stable/amd64/Docker Desktop Installer.exe

下载完成后双击 Docker Desktop Installer,直接点击 OK 开始安装:

待安装完成之后,重启计算机

重启完成后,双击桌面Docker Desktop启动

三、在windows下使用docker

1.利用PowerShell

打开 PowerShell,启动一个镜像

复制代码
docker run -d -p 80:80 docker/getting-started

查看镜像和容器

复制代码
docker images
docker container ls -a

2.使用Docker Desktop上的图形化界面

还可以直接在Docker Desktop操作镜像:

查看运行的容器:

还可以设置镜像加速地址和本地镜像仓库:

四、docker镜像存储位置修改

WSL 2管理下的docker镜像会默认存放在C盘,长期可能会导致C盘空间不足,所以最好进行文件的迁移

1.了解 WSL 子系统

WSL 是 windows subsystem for linux 的简写,指的是 windows10 的一个子系统,这个子系统的作用是在 windows下运行 linux 操作系统。现在有两个版本,分别为 WSL 1 和 WSL 2。

WSL 和虚拟机从表面上看起来是有点类似,都可以运行 linux 操作系统,但实际上有所区别:

  • 集成水平:WSL 提供更深入的集成与主机操作系统Windows。例如,你可以在Windows的文件管理器中直接访问WSL文件系统,也可以在 WSL 中直接运行Windows的可执行文件。而虚拟机则创建了一个相对隔离的环境,虽然虚拟机可以访问主机文件系统,但需要特定的设置,并且整体上没有 WSL 那么直接和方便。
  • 性能:WSL 2 使用了一种轻量级的虚拟化技术,但是它的性能通常比全功能的虚拟机更好,特别是在文件系统性能方面。
  • 系统资源消耗:WSL 通常比全功能的虚拟机更节省系统资源。虚拟机需要为每个实例分配固定的内存和磁盘空间,而WSL的资源使用随着需求而动态变化。
  • 系统调用兼容性:WSL 1 通过转换 Linux 系统调用到 Windows 系统调用,WSL 2 通过提供一个完整的 Linux 内核来实现更好的兼容性。但是,一些特定的、高级的 Linux 系统调用可能在WSL中无法工作。而虚拟机则提供了一个完全的操作系统环境,可以支持所有的系统调用。
  • 安全隔离:虚拟机提供了一个与主机操作系统隔离的环境,因此通常更安全。虽然 WSL 2 也使用虚拟化技术,但它更加集成在主机操作系统中,因此可能没有虚拟机那么安全。

2.迁移 WSL 2 子系统

docker desktop 在安装的时候创建两个 wsl 子系统,使用命令wsl -l -v查看:

  • docker-desktop 是存放程序的,位置 %LOCALAPPDATA%/Docker/wsl
  • docker-desktop-data 是存放镜像的,位置 %LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx

这两个 wsl 子系统都是默认放在系统盘的。

  • 步骤一:先关闭docker

  • 步骤二:停止所有子系统

    wsl --shutdown

  • 步骤三:导出两个子系统

    wsl --export docker-desktop docker-desktop.tar
    wsl --export docker-desktop-data docker-desktop-data.tar

  • 步骤四:删除现有的子系统

    wsl --unregister docker-desktop
    wsl --unregister docker-desktop-data

  • 步骤五:重新载入 wsl 2 子系统(目标路径自己创建)

    wsl --import docker-desktop D:\Docker\docker-desktop\ docker-desktop.tar --version 2
    wsl --import docker-desktop-data D:\Docker\docker-desktop-data\ docker-desktop-data.tar --version 2

  • 注意:

  • docker-desktop 和 docker-desktop-data 不能放在同一个文件夹,需要分别创建目标路径

  • 一定要指定 --version 2 ,否则导入的会时 wsl 而非 wsl 2,从而导致 docker desktop 无法正常启动

  • 步骤六:重新启动docker desktop

五、与Boot2Docker比较

1.什么是 Boot2Docker

Boot2Docker 是一个轻量级的 Linux 发行版,专门用于运行 Docker 容器。它完全从 RAM 运行,只需要大约 45MB 的下载量并且可以快速启动。

其核心就是一个 boot2docker.iso 镜像文件。在非linux平台(比如mac或windows)中,通常需要跟virtualbox配合,先创建一个linux虚拟机,在虚拟机上跑boot2docker这个linux系统,然后linux系统里面运行docker。

2.比较

  • 系统要求
  • Boot2Docker需要virtualbox配合运行一个精简linux发行版,不受限于windows的版本
  • docker desktop 基于 WSL 2 是在一个完整的linux系统上运行,只能在window 10 特定版本以上使用
  • 体量
  • Boot2Docker 更加轻量级,占据空间小
  • docker desktop 相对占用更大的空间
  • 功能
  • Boot2Docker 只提供了一个安装了docker的精简版linux环境,主要是设计用来开发环境使用的,不建议应用到任何生产环境
  • docker desktop 提供完整的linux环境,而且docker desktop还提供了可视化的操作界面,可以快速搭建k8s或swarm集群
  • 支持
  • Boot2Docker 官方已经不再维护,同时建议用户向docker desktop迁移
  • docker desktop 持续维护中
相关推荐
Java陈序员19 小时前
轻量强大!一款现代化的 Kubernetes 集群管理与监控工具!
云原生·容器·kubernetes
爱吃橘子橙子柚子2 天前
3CPU性能排查总结(超详细)【Linux性能优化】
运维·cpu
Sheffield2 天前
Docker的跨主机服务与其对应的优缺点
linux·网络协议·docker
Sheffield3 天前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
马艳泽3 天前
win10下运行Start Broker and Proxy报错解决
docker
舒一笑4 天前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData4 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
用户13573999256604 天前
Windows 从 0 搭建 WSL2 原生 AI 开发环境:Codex + Docker + VSCode
docker
vi_h4 天前
在 macOS 上通过 Docker 安装并运行 Ollama(详细可执行教程)
macos·docker·ollama
黑心老魔4 天前
通过 Docker 创建开发环境
docker·开发环境