带你入门,在Windows玩转Docker Desktop
1.什么是Docker
https://docs.docker.com/get-started/docker-overview/
Docker 是一个用于开发、发布和运行应用程序的开放平台。Docker 使你能够将应用程序与基础设施分离开来,从而可以快速交付软件。使用 Docker,你可以用管理应用程序的方式来管理基础设施。借助 Docker 的代码交付、测试和部署方法,你可以大幅缩短编写代码与在生产环境中运行代码之间的延迟。
1.1Docker平台
Docker 支持将应用程序打包并运行在一种名为容器的松散隔离环境中。这种隔离性与安全性让你能在同一台主机上同时运行多个容器。容器轻量且包含运行应用所需的全部内容,因此无需依赖主机上已安装的组件。你可以在工作中共享容器,并且能确保与你共享的所有人都获得功能完全一致的容器。
Docker 提供工具和平台来管理容器的生命周期:
- 使用容器开发你的应用程序及其支持组件。、
- 容器成为分发和测试你的应用程序的单元。
- 准备就绪后,将你的应用程序作为容器或编排服务部署到生产环境中。无论你的生产环境是本地数据中心、云服务提供商还是两者混合,部署方式都完全相同。
1.2可以将 Docker 用于什么
Docker 简化了开发生命周期,让开发者能在本地容器构成的标准化环境中工作,这些容器为应用程序和服务提供支持。容器非常适用于持续集成和持续交付(CI/CD)工作流。
1.3Docker架构
Docker 采用客户端-服务器架构。Docker 客户端与 Docker 守护进程交互,后者负责构建、运行和分发你的 Docker 容器等核心繁重工作。Docker 客户端和守护进程可在同一系统上运行,也可将 Docker 客户端连接到远程 Docker 守护进程。二者通过 REST API 借助 UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它可用于处理由一组容器组成的应用程序。
1.4容器与虚拟机
虚拟机就是一个完整的操作系统,拥有自己的内核、硬件驱动程序以及各类程序和应用。仅为隔离单个应用而启动一台虚拟机,会产生大量额外开销。
容器本质上就是一个包含运行所需全部文件的隔离进程。运行多个容器时,它们会共享同一个内核,这样就能在更少的基础设施上运行更多应用程序。
2.前置条件
参考Install Docker Desktop on Windows https://docs.docker.com/desktop/setup/install/windows-install/
- CPU 必须支持并在 BIOS/UEFI 中开启 硬件虚拟化(Intel VT‑x / AMD‑V)
- Windows 10(64 位)家庭版 / 专业版 / 企业版 / 教育版,22H2 (build 19045)
- Windows 11(64 位)家庭版 / 专业版 / 企业版 / 教育版,23H2 (build 22631)
- ≥8GB内存
2.1检查虚拟化开启状态
查看虚拟化开启状态:任务管理器 → 性能 → CPU → 右下角
在这里插入图片描述
如果没有开启,请读者根据自己的电脑型号开启。
2.2相关概念
- Image(镜像):只读的、不可修改的「模板」,包含运行一个程序所需的所有东西(代码、依赖、配置)。
- Container(容器):基于镜像创建的「可运行实例」,是独立的、可读写的、隔离的运行环境。
- Registry(仓库):仓库是存储和分发镜像的远程平台,最常用的公有仓库是 Docker Hub(https://hub.docker.com),国内大概率访问不了。
3.WSL
3.1 WSL简介
WSL 全称是 Windows Subsystem for Linux(适用于 Linux 的 Windows 子系统)。它是微软开发的一项功能,允许在 不安装虚拟机(如 VMware的情况下,直接在 Windows 上运行原生的 Linux 环境(包括大多数命令行工具、实用工具和应用程序)。
WSL目前主要有两个版本,WSL 1和WSL 2。Docker Desktop 在 Windows 上必须依赖 WSL 2 才能高效运行。
- WSL 1
通过翻译层将 Linux 系统调用转换为 Windows 内核能理解的调用,兼容性较差,不推荐。 - WSL 2
基于轻量级的 虚拟化技术,在 Windows 内部运行一个真正的 Linux 内核,几乎 100% 兼容。
以前,想用 Linux 只能装双系统 / 虚拟机,现在Windows 本身就是一套完整开发工作站。
WSL2 让 Windows 同时拥有:Windows 的易用性 + Linux 的开发能力。
3.2 WSL安装
• 如何使用 WSL 在 Windows 上安装 Linux https://learn.microsoft.com/zh-cn/windows/wsl/install
• 旧版 WSL 的手动安装步骤 https://learn.microsoft.com/zh-cn/windows/wsl/install-manual
在PowerShell(管理员)执行命令:
# 列出有效的分发列表
wsl -l -o

#默认安装Ubuntu
wsl --install

4.Docker Desktop for Windows
一款原生 Windows 应用程序,可将所有 Docker 工具部署到你的 Windows 电脑上。
4.1安装
下载地址 https://docs.docker.com/desktop/setup/install/windows-install/ 

4.2软件简介

4.2.1 Containers
容器视图会列出所有正在运行和已停止的容器以及应用程序。它提供了一个简洁的界面,用于管理容器的生命周期、与正在运行的应用程序交互以及查看 Docker 对象——包括 Docker Compose 应用程序。

使用搜索字段按名称查找特定容器。从容器试图中,你可以:
- 启动、停止、暂停、恢复或重启容器
- 查看镜像包
- 删除容器
- 实用Docker调试
- …
从容器视图中,你可以随时间监控容器的 CPU 和内存使用情况。这有助于你判断容器是否存在异常,或者是否需要分配额外资源。你可以查看容器随时间使用的CPU、内存、网络和磁盘空间情况。
更多信息请参考Docker手册:https://docs.docker.com/desktop/use-desktop/container/
4.2.2Images
镜像视图会显示你的 Docker 镜像列表,支持将镜像作为容器运行、从 Docker Hub 拉取镜像的最新版本以及查看镜像详情。此外,镜像视图提供清理选项,可删除磁盘上无用的镜像以释放空间。
镜像视图让你无需使用命令行界面(CLI)就能管理 Docker 镜像。默认情况下,该视图会显示本地磁盘上所有 Docker 镜像的列表。
镜像视图允许你执行核心操作,例如将镜像作为容器运行、从 Docker Hub 拉取镜像的最新版本、将镜像推送到 Docker Hub 以及查看镜像信息。
更多信息请参考Docker手册:https://docs.docker.com/desktop/use-desktop/images/
4.2.3Volumes
卷视图可让你创建、查看、删除、克隆、清空、导出和导入Docker 卷。你还可以浏览卷中的文件和文件夹,并查看哪些容器正在使用它们。
你可以按照以下步骤创建一个空卷。或者,如果你启动容器时指定一个卷且该卷尚不存在,Docker 会为你创建该卷。
主要操作包括:
- 创建卷:选择Create按钮,在新建卷对话框中,指定卷名称,然后选择创建。
- 查看卷
- 克隆卷
- 删除卷
- 清空卷
- 导出卷
- 导入卷
更多信息请参考Docker手册:https://docs.docker.com/desktop/use-desktop/volumes/
4.2.4Builders
构建 视图提供了一个交互式界面,可在 Docker Desktop 中直接查看构建历史、监控活跃构建以及管理构建器。
更多信息请参考Docker手册:https://docs.docker.com/desktop/use-desktop/volumes/
4.2.5Kubernetes
Docker Desktop 包含一个独立的 Kubernetes 服务器和客户端,以及 Docker 命令行界面集成功能,可直接在你的计算机上进行本地 Kubernetes 开发和测试。
更多信息请参考Docker手册:https://docs.docker.com/desktop/use-desktop/kubernetes/
4.3修改镜像源
由于访问外网受限,修改镜像源为国内地址。
- 选择右上角的Settings图标
- 选择Docker Engine
- 将下列文本复制到文本框,选择 Apply,笔者当前用的是 https://docker.1ms.run
{
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://docker.1ms.run"
]
}
建议读者在配置前检查 https://docker.1ms.run 是否可以正常访问,如果不行可问AI最新可用的镜像源。
4.4拉取镜像
在PowerShell执行命令,拉取镜像的命令为:
docker pull <镜像名:版本>
如果不输入版本,默认拉取 latest( 最新版)。建议手动指定版本,因为不能保证镜像源有你需要的最新版。
4.4.1拉取Redis
拉取8.6.1版本的Redis,执行命令:
docker pull redis:8.6.1

4.4.2拉取PG数据库
拉取最新版PG数据库,执行命令:
docker pull postgres

4.5启动PG数据库
选择postgres镜像的Run按钮,输入相关参数:

- Container name:为正在创建的容器指定一个自定义的名称,不指定Docker会自动生成一个随机名称。名称应是唯一的,建议手动指定。
- Host Ports:宿主机端口,将容器内部的服务端口映射到宿主机的网络接口上,使得外部网络(包括宿主机的浏览器或其他设备)可以访问容器内的服务。如果宿主机端口已被占用,容器启动会失败。
- Host Path:宿主机上的绝对路径,用于和容器内的路径绑定(挂载)。容器内的数据默认存储在容器内部,容器删除后数据丢失;将容器内的关键目录挂载到主机路径,数据会同步到主机,容器删除后数据仍在。
- Container path:容器内部的绝对路径(文件夹 / 文件),是容器内程序实际读写数据的位置。默认就好。
- Environment variables:启动的镜像不同参数会不一样,在本示例中指定了用户名和密码。
启动后可以在container中看到:
4.6启动Redis
选择redis镜像的Run按钮,输入相关参数:

4.7Docker常用命令
以下命令通过AI辅助生成。
4.7.1拉取镜像
# 拉取指定镜像(默认最新版本)
docker pull [镜像名]:[标签]
# 示例:拉取redis 8.6.1镜像
docker pull redis:8.6.1
# 示例:拉取最新版本的postgres镜像
docker pull postgres:latest
# 示例:不指定标签,默认拉取latest版本
docker pull postgres
标签(Tag)用于区分镜像版本。
4.7.2管理镜像
# 1. 查看本地所有镜像
docker images
# 或
docker image ls
# 2. 查看镜像详细信息(包括ID、创建时间等)
docker inspect [镜像ID/镜像名]
# 3. 删除指定镜像(-f 强制删除,即使有容器依赖)
docker rmi [镜像ID/镜像名:标签]
# 示例:强制删除镜像(慎用)
docker rmi -f nginx:latest
# 4. 批量删除未使用的镜像
docker image prune -a
# 5. 导出镜像为本地文件(备份用)
docker save -o [本地文件路径] [镜像名:标签]
# 示例:导出nginx镜像为nginx.tar
docker save -o ./nginx.tar nginx:latest
# 6. 从本地文件导入镜像
docker load -i [本地文件路径]
# 示例:导入nginx.tar文件
docker load -i ./nginx.tar
4.7.3管理容器
# 1. 查看正在运行的容器
docker ps
# 2. 查看所有容器(包括已停止的)
docker ps -a
# 3. 进入运行中的容器(交互式终端)
docker exec -it [容器名/容器ID] /bin/bash
# 示例:进入my-nginx容器
docker exec -it my-nginx /bin/bash
# 4. 停止容器
docker stop [容器名/容器ID]
# 示例:停止my-nginx容器
docker stop my-nginx
# 5. 重启容器
docker restart [容器名/容器ID]
# 示例:重启my-nginx容器
docker restart my-nginx
# 6. 强制停止容器(类似kill进程)
docker kill [容器名/容器ID]
# 7. 删除容器(需先停止,-f 强制删除运行中的容器)
docker rm [容器名/容器ID]
# 示例:删除my-nginx容器
docker rm my-nginx
# 示例:强制删除运行中的容器
docker rm -f my-nginx
# 8. 批量删除所有已停止的容器
docker container prune
# 9. 查看容器日志(后台运行容器的输出)
docker logs [容器名/容器ID]
# 示例:实时查看Nginx容器日志
docker logs -f my-nginx
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)