Docker之Windows与Linux不同架构部署理解

Windows 主流架构:x86_64(AMD64) 和 ARM64;

Linux 主流架构:x86_64(AMD64) 和 ARM64(AArch64)。

Docker 跨平台的核心逻辑:镜像架构 / 系统和目标服务器匹配,就能通用

一、AMD64架构

1、为什么 Linux x86 架构的 Nginx 能在 Windows x86 上运行?

Docker之Nginx前端部署(Windows版-x86_64(AMD64)-离线)这篇文章里的Nginx版本其实是Linux x86 架构的,但是Nginx 也能在 Windows x86 上离线运行镜像。

核心原因是 Docker Desktop 的 "虚拟化 / 隔离层" 做了适配,并非 Nginx 直接跑在 Windows 上,而是:

bash 复制代码
Windows x86主机 
  ↓ 内置WSL 2(Linux子系统,你之前查过是Running状态)
    ↓ Docker Desktop在WSL 2里创建了Linux内核环境
      ↓ Linux/amd64的Nginx镜像跑在这个Linux内核环境中
        ↓ Docker把Nginx的端口/文件映射到Windows,让你"感知到"在Windows上能用

在 Windows x86 上运行的是 "Linux/amd64 版 Nginx"(跑在 WSL 2 的 Linux 环境里),而非 "Windows 版 Nginx",所以这个镜像能无缝导出到 Linux (x86) 服务器运行 ------ 这也是 Docker 跨平台的核心逻辑:镜像架构 / 系统和目标服务器匹配,就能通用

安装 Docker Desktop 时自动启用WSL:

如果你是先装了 Docker Desktop,它会检测到 WSL 未启用,弹出提示并帮你自动安装 WSL 2 和必要组件(包括一个轻量的 Linux 环境)。

2、当前是否有WSL运行?

列出当前 Windows 系统中已安装的所有 WSL 分发版,并显示每个分发版的详细状态信息,是排查 WSL 环境、确认架构 / 运行状态的关键指令。

Running:该 WSL 分发版正在后台运行。

例如:

bash 复制代码
  NAME                   STATE           VERSION
* Ubuntu-22.04           Running         2
  Debian                 Stopped         2
  Kali-Linux             Stopped         1

3、WSL 2 的 Linux 环境从哪里来?

bash 复制代码
Windows系统
  ↓ 启用WSL功能(手动或Docker触发)
    ↓ Windows下载并安装WSL 2内核 + 默认Linux发行版(如Ubuntu)
      ↓ 安装Docker Desktop(选择Linux容器模式)
        ↓ Docker自动创建`docker-desktop`等专属WSL子系统
          ↓ 你拉取的Linux镜像(如Nginx),就跑在这个WSL子系统的Linux环境中
第一步:Windows 系统先启用 WSL 功能

WSL 是 Windows 的原生功能(Win10 2004+、Win11 默认支持),需要手动启用(或安装 Docker Desktop 时自动触发):

方式 1:手动启用(以管理员身份打开 PowerShell,执行):

bash 复制代码
# 启用WSL和虚拟机平台功能
wsl --install

方式 2:安装 Docker Desktop 时自动启用

如果你是先装了 Docker Desktop,它会检测到 WSL 未启用,弹出提示并帮你自动安装 WSL 2 和必要组件(包括一个轻量的 Linux 环境)。

第二步:Docker Desktop 自动配置专属 WSL 环境

当你安装 Docker Desktop 并选择「Linux 容器模式」时,Docker 会自动创建 2 个专属的 WSL 2 子系统(你之前用wsl --list看到的docker-desktop就是其中之一):

docker-desktop:承载 Docker 的核心服务(如 Docker 引擎、容器运行时);

docker-desktop-data:存储 Docker 的镜像、容器数据。

这两个 WSL 子系统是Docker 专用的轻量 Linux 环境(不需要你手动操作,Docker 会自动管理),你的 Nginx 镜像就是跑在这个环境里的。

二、ARM64架构

1、如何使用Windows x86 生成适配 Linux ARM64的镜像?

Windows x86 电脑上可通过 多架构构建工具(如 Docker Buildx) 生成适配 ARM64 的镜像

三、查看当前镜像的架构

比如: 查看Nginx镜像架构

方法 1:在 Docker Desktop 界面查看(简单直观)

点击 Nginx 镜像右侧的 三个点(更多操作);

选择 Inspect(检查);

方法 2:用命令行确认(更精准)

打开 Windows 终端 / PowerShell,执行以下命令:

bash 复制代码
# 查看nginx镜像的详细信息(包含架构)
docker inspect nginx:latest | findstr "Architecture Os"

说明是 Linux 环境下的 x86_64(AMD64)架构,可以直接导出适配 Linux (x86) 服务器。

  • 若返回 arm64 → 是 ARM64 架构,需重新拉取 x86_64 版本(参考之前的docker pull --platform
    linux/amd64 nginx)。
相关推荐
阿梦Anmory1 天前
Ubuntu配置代理最详细教程
linux·运维·ubuntu
呉師傅1 天前
【使用技巧】Adobe Photoshop 2024调整缩放与布局125%后出现点菜单项漂移问题的简单处理
运维·服务器·windows·adobe·电脑·photoshop
云姜.1 天前
线程和进程的关系
java·linux·jvm
忆~遂愿1 天前
CANN metadef 核心解析:计算图原型定义、算子元数据抽象与异构系统互操作机制
docker·容器
小Tomkk1 天前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
赌博羊1 天前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
linux·运维·gnu
木卫二号Coding1 天前
第七十九篇-E5-2680V4+V100-32G+llama-cpp编译运行+Qwen3-Next-80B
linux·llama
getapi1 天前
Ubuntu 22.04 服务器的系统架构是否为 amd64 x86_64
linux·服务器·ubuntu
消失的旧时光-19431 天前
Linux 入门核心命令清单(工程版)
linux·运维·服务器
艾莉丝努力练剑1 天前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法