Docker Desktop 在Windows 环境中开发、测试和运行容器化的应用程序

ops/2025/1/31 9:29:47/

Docker 为 Windows 提供了专门的桌面版工具,称为 Docker Desktop,它允许你在 Windows 环境中开发、测试和运行容器化的应用程序。

如何在 Windows 上使用 Docker

  1. Docker Desktop
    Docker Desktop 是一个专为 Windows 设计的应用程序,它简化了在 Windows 上安装和管理 Docker 的过程。Docker Desktop 支持 Windows 10 和 Windows 11(至少是 Pro 或 Enterprise 版本),并且为开发人员提供了一个完整的开发环境。

Docker Desktop 支持的操作系统:
Windows 10 或 Windows 11:支持 Pro、Enterprise 和 Education 版本(需要启用 Hyper-V 和 Windows Subsystem for Linux 2)。
Windows Server 2016 及以上版本:也支持 Docker,但需要额外的配置。
2. 安装步骤
下载 Docker Desktop:

访问 Docker 官网 并下载适用于 Windows 的 Docker Desktop。
安装 Docker Desktop:

双击下载的安装包并按照向导进行安装。
在安装过程中,它会提示启用 Hyper-V 和 Windows Subsystem for Linux 2 (WSL 2),你需要根据提示进行操作。这两者是 Docker 在 Windows 上运行容器的核心技术。
启动 Docker Desktop:

安装完成后,启动 Docker Desktop,它会在后台启动 Docker 引擎并配置必要的环境。
启动时,Docker Desktop 会确保 Hyper-V 和 WSL 2 正常工作,这样容器就可以在虚拟化环境中运行。
运行 Docker 命令:

安装完成并启动 Docker Desktop 后,你就可以在终端(如 PowerShell 或命令提示符)中使用 docker 命令了。例如,可以通过以下命令来检查 Docker 是否正常运行:

docker --version
或者运行一个简单的容器
docker run hello-world
3. 使用 WSL 2(Windows Subsystem for Linux 2)
在 Docker Desktop 的配置中,WSL 2 是 Docker 在 Windows 上运行容器的关键组件。WSL 2 是一个完整的 Linux 内核,可以让你在 Windows 上运行 Linux 容器

如果你选择启用 WSL 2,Docker 会将容器直接运行在 WSL 2 的 Linux 环境中,而不是传统的 Hyper-V 虚拟机中。这不仅能提供更好的性能,还能支持更多的 Linux 功能。
4. Linux 容器与 Windows 容器的切换
Docker Desktop 支持同时运行 Linux 容器和Windows 容器。默认情况下,Docker Desktop 会运行 Linux 容器,但你可以通过 Docker Desktop 的设置界面切换到 Windows 容器模式。通常,Linux 容器对于开发者来说更为常见,因为大多数 Docker 镜像和应用程序都是在 Linux 环境中运行的。

在 Docker Desktop 上,你可以通过右键点击 Docker 图标,选择 “Switch to Windows Containers” 或 “Switch to Linux Containers” 来切换容器模式。

  1. 在 Docker Desktop 上运行容器
    一旦安装完成,你就可以像在任何其他平台上一样运行 Docker 容器。在 Windows 上,你通常会运行 Linux 容器,但 Docker Desktop 会为 Windows 提供必要的支持来运行 Windows 容器

例如,拉取并运行一个 Docker 镜像:
docker pull ubuntu
docker run -it ubuntu bash
这样就会启动一个 Ubuntu 容器并进入 Bash 环境。

  1. Windows容器与 Linux容器的差异
    Linux 容器:大多数 Docker 镜像和应用程序都是基于 Linux 的,因此 Linux 容器是 Docker 的标准运行模式。
    Windows 容器:Windows 容器可以运行 Windows 应用程序和镜像,它们需要 Windows 服务器的支持,且不完全与 Linux 容器兼容。因此,Windows 容器通常用于运行基于 Windows 的应用,而不适用于大多数通用应用。
  2. Docker for Windows 限制
    Windows Home Edition:Docker Desktop 不支持 Windows Home 版本,因为它不包含 Hyper-V 和 WSL 2。如果你使用的是 Windows Home 版本,虽然 Docker Desktop 的一些功能不可用,但你可以尝试使用 Docker Toolbox,它是为 Windows 7 和 Windows Home 版本设计的较早版本,但功能和性能上较为有限。
    性能限制:通过虚拟化运行的 Docker 容器(无论是 Linux 容器还是 Windows 容器)通常会比原生运行的容器性能稍差,但对于大多数开发场景已经足够。
    总结
    是的,Docker 可以在 Windows 上运行,尤其是通过 Docker Desktop,它为 Windows 提供了完整的 Docker 开发环境。
    Docker Desktop 在 Windows 10 和 Windows 11 上(Pro、Enterprise 版本)工作良好,并且使用 WSL 2 来运行 Linux 容器
    你可以在 Docker Desktop 上切换容器类型,支持 Linux 容器和 Windows 容器的切换。

http://www.ppmy.cn/ops/154442.html

相关文章

服务器上安装Nginx详细步骤

第一步:上传nginx压缩包到指定目录。 第二步:解压nginx压缩包。 第三步:配置编译nginx 配置编译方法: ./configure 配置编译后结果信息: 第四步:编译nginx 在nginx源文件目录中直接运行make命令 第五步&…

基于微信小程序的校园二手交易市场的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

GESP2023年12月认证C++六级( 第三部分编程题(1)闯关游戏)

参考程序代码&#xff1a; #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <string> #include <map> #include <iostream> #include <cmath> using namespace std;const int N 10…

基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制

参考B站up主【架构分析】嵌入式祼机事件驱动框架 感谢大佬分享 任务ID &#xff1a; TASK_XXX TASK_XXX 在系统中每个任务的ID是唯一的&#xff0c;范围是 0 to 0xFFFE&#xff0c;0xFFFF保留为SYS_TSK_INIT。 同时任务ID的大小也充当任务调度的优先级&#xff0c;ID越大&#…

Node.js 中文编码问题全解析

Node.js 中文编码问题全解析 问题背景 在 Node.js 中执行 Gradle 命令时遇到中文输出乱码问题。这个问题涉及 Windows 系统、Java 进程和 Node.js 三个层面的编码处理。 问题分析 最初的错误代码 gradleProcess.stdout.setEncoding(utf-8); // 错误&#xff1a;假设输出是…

for...in 和 Object.keys().forEach的区别

for…in 和 Object.keys().forEach的区别 1、遍历范围&#xff1a; for…in 会遍历 自身及原型链上的可枚举属性&#xff0c;需用 hasOwnProperty 过滤。 Object.keys() 仅遍历 自身可枚举属性&#xff0c;更安全。 // 定义一个父对象&#xff0c;包含原型链上的属性 const…

Lucene常用的字段类型lucene检索打分原理

在 Apache Lucene 中&#xff0c;Field 类是文档中存储数据的基础。不同类型的 Field 用于存储不同类型的数据&#xff08;如文本、数字、二进制数据等&#xff09;。以下是一些常用的 Field 类型及其底层存储结构&#xff1a; TextField&#xff1a; 用途&#xff1a;用于存储…

springboot 简化 spring开发

什么是自动配置&#xff1f; 简单概念&#xff1a; Spring Boot 自动配置是一种 “约定优于配置” 的做法。根据项目类路径&#xff08;classpath&#xff09;上存在的依赖、配置文件中的某些属性&#xff0c;Spring Boot 会自动为常见场景创建并配置相关 Bean&#xff0c;省…