Windows 11 使用容器(Docker Podman)

news/2025/2/23 15:33:58

文章目录

  • 背景
  • 1、相关网站
    • 1.1、WSL
    • 1.2、Docker
    • 1.3、Podman
  • 2、环境
  • 3、安装部署
    • 3.1、安装 WSL
    • 3.2、Docker
      • 3.2.1、Docker Desktop
        • 3.2.1.1、安装
        • 3.2.1.2、拉取镜像
        • 3.2.1.3、启动容器
    • 3.3、Podman
      • 3.3.1、安装
      • 3.3.2、使用
      • 3.3.3、异常处理
  • 总结


背景

Windows 系统中使用容器,可以通过 Docker 或者 Podman 实现。

  1. Docker 有两种安装方式:Docker Desktop 或者 Docker Engine。
    • 注意:Docker Desktop 的授权说明,不是所有企业都可以使用的。【官方网站 - 相关说明】
    • 说明:Docker Engine 使用不受限 【官方文档】。但是,Windows 不在 Docker Engine 的支持列表中【官方网站 - 相关说明】。所以要通过虚拟机安装 Docker Engine。虚拟机怎么搞?Microsoft Store 或者 VMware Workstation Pro (这个 2025 年可以免费使用啦 ~ )有点折腾!这个时候 Podman 的优势就出来了,比 Docker Engine 安装简单一下啦!
  2. WSL:无论是 Docker 还是 Podman,在 Windows 环境下,都是需要依赖 WSL 的 ~ ~ ~

官方网站 - 相关截图

在这里插入图片描述

在这里插入图片描述


1、相关网站

1.1、WSL

Windows Subsystem for Linux (WSL) 是 Windows 系统中用于运行 Linux 发行版的一个兼容层,它允许用户在 Windows 环境下直接运行 Linux 命令行工具和应用程序,而无需安装虚拟机。WSL 提供了接近原生 Linux 的开发体验,同时能够访问 Windows 文件系统和网络资源。

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

百度百科对于 WSL 的介绍: https://baike.baidu.com/item/wsl/20359185

WSL 的基本命令: https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands

1.2、Docker

Docker Desktop 官方部署文档: https://docs.docker.com/desktop/install/windows-install/

版本更新说明: https://docs.docker.com/desktop/release-notes/

Docker Desktop Installer.exe 下载地址: https://desktop.docker.com/win/main/amd64/149282/Docker%20Desktop%20Installer.exe

1.3、Podman

官方网站: https://podman.io/

部署文档: https://podman.io/docs/installation

GitHub 提供的下载列表【没有 .exe 或 .msi 文件。官方网站可以下载到 .exe 文件,比较方便安装】: https://github.com/containers/podman/releases


2、环境

操作系统:Windows 11 家庭中文版 23H2 (22631.4602)

WSL 版本: 2.4.11.0

Docker Desktop 版本:4.30.0 (149282)
说明:此 Docker Desktop 版本包括 Docker 的版本为 26.1.1, build 4cf5afa

Podman 版本:5.4.0


3、安装部署

3.1、安装 WSL

  1. 启用 WSL 和虚拟机平台

在Windows中,打开“程序和功能”,选择“启用或关闭Windows功能”,勾选“适用于Linux的Windows子系统”和“虚拟机平台”两个选项。

  1. 重启电脑

  2. 安装 WSL

以管理员模式启动 PowerShell,设置 WSL 版本为 2,并更新 WSL 核心,然后安装 WSL

# 检查状态
wsl --status

# 安装
wsl --install
# 更新
wsl --update
# 设置默认版本为 WSL 2
wsl --set-default-version 2
# 版本信息
wsl --version
# 帮助
wsl --help

# 显示已安装的 Linux 发行版列表 + 确切版本和状态
wsl --list --verbose

3.2、Docker

3.2.1、Docker Desktop

3.2.1.1、安装

Docker Desktop Installer.exe 下载地址: https://desktop.docker.com/win/main/amd64/149282/Docker%20Desktop%20Installer.exe

通过 Docker Desktop Installer.exe 文件即可完成安装部署。

3.2.1.2、拉取镜像

通过 Docker Desktop 可视化界面管理镜像,需要登录 Docker 账户。通过命令行的方式,则不需要登录账户。

# 拉取镜像(通过页面拉取镜像,需要登录)
docker pull nginx:1.26.0
# 可通过页面部署

在这里插入图片描述

3.2.1.3、启动容器

镜像拉取后在 Docker Desktop 界面可以看到拉取的镜像(命令行拉取的也可以看到)。

点击 Run 按钮则弹出配置页面,以 Nginx 为例,配置端口,点击 Run 按钮,则容器就运行起来了。

通过浏览器访问 http://localhost:80 则可以看到 Nginx 的欢迎页面了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3、Podman

3.3.1、安装

官方网站: https://podman.io/

推荐通过官方网站下载 .exe 安装文件,并按照默认设置进行安装。

# 通过检查版本号,确认是否安装成功
podman -v

# 初始化 Podman 机器
# 自动在 WSL 环境中设置并启动一个 Podman 虚拟机
podman machine init
podman machine status

# 启动 Podman 虚拟机
podman machine start
# 停止 Podman 虚拟机
podman machine stop

安装完成!

3.3.2、使用

说明:Podman 提供了与 Docker 客户端相同的命令集,因此熟悉 Docker 的用户可以很容易地上手。

3.3.3、异常处理

# 私有仓库拉取镜像,通过 --tls-verify=false 命令忽略私有证书
# 例如
podman pull 192.168.1.1/public/mysql:8.0.36 --tls-verify=false

总结

Docker Desktop 限制使用的情况下,Podman 是一个不错的选择,安装步骤相对简单一点。

但是,如果本身就有 VMware Workstation Pro 这类虚拟机的需求,那么虚拟机可能是更好的选择。毕竟 VMware Workstation Pro 有可视化的管理界面,更容易管理虚拟机!


http://www.niftyadmin.cn/n/5863538.html

相关文章

家用路由器的WAN口和LAN口有什么区别

今时今日,移动终端盛行的时代,WIFI可以说是家家户户都有使用到的网络接入方式。那么路由器当然也就是家家户户都不可或缺的设备了。而路由器上的两个实现网络连接的基础接口 ——WAN 口和 LAN 口,到底有什么区别?它们的功能和作用…

生产者标签(Producer Tag) 和 普通连接(显式或隐式连接)的区别:

在 EtherNet/IP 的通信架构中,生产者标签(Producer Tag) 和 普通连接(显式或隐式连接)的区别主要体现在 通信模式、实时性、数据流向 和 资源管理 上。以下是详细对比: 1. 定义与用途 类型生产者标签&…

【多语言生态篇一】【DeepSeek×Java:Spring Boot微服务集成全栈指南 】

(手把手带你从零实现AI能力调用,万字长文预警,建议收藏实操) 一、环境准备:别输在起跑线上 1.1 硬件软件全家桶 JDK版本:必须 ≥17(Spring Boot 3.2+强制要求,低版本直接报错)IDE推荐:IntelliJ IDEA终极版(社区版缺Spring AI插件支持)构建工具:Maven 3.9+ / Grad…

【多语言生态篇四】【DeepSeek×Rust:安全内存管理实践】

第一部分:内存管理的重要性与挑战 在现代软件开发中,内存管理是一个永恒的话题,尤其是对于高并发、高性能的应用场景。无论是传统的C++、Java,还是新兴的Rust,内存管理都直接影响着程序的性能、稳定性和安全性。 为什么内存管理这么重要? 内存是计算机中最重要的资源之…

AWS - Redshift - 外部表读取 Parquet 文件中 timestamp 类型的数据

问题: 通过 Redshift Spectrum 功能可以读取 S3 中的文件,当读取 Parquet 文件时,如果列格式设置为 timestamp, 通过 psql 客户端读取会出现以下错误: testdb# select * from myspectrum_schema_0219.test_ns; ERROR…

Spring Boot (maven)分页4.0.2版本 专业版- 模板化最终版(测试)

前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…

高性能缓存设计:如何解决缓存伪共享问题

大家好,我是 方圆。在多核高并发场景下,缓存伪共享(False Sharing) 是导致性能骤降的“隐形杀手”。当不同线程频繁修改同一缓存行(Cache Line)中的独立变量时,CPU缓存一致性协议会强制同步整个…

Linux第十三节 — 进程状态详解

只要一个进程的PCB还存在内存当中,哪怕此时该进程对应的代码和数据已经在磁盘当中,此时依然认为该进程仍然存在! 一、Linux进程的运行状态R 接下来我们看下面这个例子: 当我们执行这个程序的时候,我们认为该进程的状…