当前位置: 首页 > ai >正文

Docker Desktop 使用操作指南

1. 为什么要用 Docker Desktop?

可以把 Docker 想成**“应用的集装箱”**:

  • 在现实世界,集装箱可以装任何货物(食品、电子产品、服装…),无论船、火车还是卡车运输,都能保证里面的东西不会变。

  • 在软件世界,Docker 容器可以装任何软件(网站、数据库、Python 程序…),无论运行在 Windows、Mac 还是 Linux,效果都一样,不会因为环境不同而“跑不起来”。

对开发者的好处:

  • 不脏主机:不用在自己的电脑装一堆复杂的软件环境。

  • 快速部署:打包好直接发给别人用,不用担心“环境不一致”。

  • 跨平台:相同的容器,可以从你电脑直接搬到服务器或云端运行。


2. Docker Desktop 的原理(比喻篇)

现实中的物流体系:
  1. 集装箱码头 → 存放集装箱的地方(相当于 Docker 镜像仓库)

  2. 集装箱起重机 → 把集装箱装上船/卸下船(相当于 Docker 引擎)

  3. 集装箱运输车 → 运输集装箱到目的地(相当于容器运行环境)

在 Docker Desktop 中:
  1. 镜像仓库(Registry)

    • 比如 Docker Hub,存放各种“装好软件的集装箱”。

  2. Docker 引擎(Docker Engine)

    • 像起重机一样,把镜像(集装箱)搬到运行环境里。

  3. 容器(Container)

    • 就是运行起来的应用实例(集装箱在路上运输或已送到工厂使用)。

  4. WSL2 / 虚拟机

    • 在 Windows 上模拟一个“港口”,因为大多数集装箱(容器)是 Linux 格式的。


3. Docker Desktop 的主要构成

组件作用
Docker Engine核心大脑,负责下载、创建、运行和管理容器。
Docker CLI命令行接口,输入 docker xxx 就是通过 CLI 给引擎下指令。
Docker Compose批量管理多个容器服务,用一个 docker-compose.yml 描述全部服务运行规则。
GUI 面板图形界面版的控制台,可以直接点击管理容器、镜像、网络和存储卷。
Registry 支持可以登录 Docker Hub 或私有镜像仓库,方便共享镜像。


4. Docker Desktop 操作步骤(带比喻+图解思路)

第一步:安装并启动 Docker Desktop
  1. 从官网下载安装(像给自己装一个“集装箱港口”)。

  2. 打开后,右下角出现小鲸鱼图标 → 绿色表示港口已经正常运作。

第二步:拉取镜像(相当于“从码头取集装箱”)
docker pull python:3.11-slim
  • 这个命令会从 Docker Hub 拉取一个装好 Python 3.11 环境的镜像(集装箱)。

第三步:运行容器(相当于“把集装箱运到工厂开始生产”)
docker run -it --name mypython python:3.11-slim bash
  • -it 表示交互模式。

  • --name mypython 给容器取名字。

  • bash 表示运行后进入容器的命令行。

第四步:批量管理(用 Compose 组织多个集装箱)

创建一个 docker-compose.yml 文件:

version: '3' services: web: image: nginx ports: - "8080:80"

运行:

docker compose up -d

停止:

docker compose down

5. Docker Desktop 的用途

  • 本地快速测试:运行数据库、Web 服务等依赖,不污染本机。

  • 微服务开发:多个服务同时跑,方便调试。

  • 跨环境部署:开发机、测试机、线上机统一镜像。

  • 自动化 CI/CD:配合 GitLab CI、Jenkins 做持续集成部署。


6. 常见问题与解决

问题原因解决方案
wsl --update 无法执行PATH 缺少 System32添加 C:\Windows\System32 到环境变量
拉取镜像很慢网络限制设置国内镜像加速(如阿里云、DaoCloud)
容器网络不通DNS 问题在 Docker Desktop 设置中改 DNS 为 8.8.8.8
端口冲突本地已有服务占用端口修改 docker-compose.yml 的端口映射


7. 图解思路(建议做成 PDF)

建议画一个这样的结构图,方便你做成 PDF 保存:

[Docker Hub 镜像仓库] ↓ 拉取 [Docker Engine 引擎] ← (CLI/GUI) ↓ 创建 [容器 Container] ← 映射 → [本地端口]

再配一张现实“港口 + 集装箱”的照片对比,让小白一眼就懂。

http://www.xdnf.cn/news/17279.html

相关文章:

  • 微服务的好与坏
  • DAY 39 图像数据与显存
  • 移动端开发中类似腾讯Bugly的产品推荐与比较-5款APP异常最终产品推荐-卓伊凡|bigniu
  • 线程池分析与设计
  • 全面了解selenium
  • [linux] Linux:一条指令更新DDNS
  • Docker容器部署discuz论坛与线上商城
  • Uber的MySQL实践(一)——学习笔记
  • python学智能算法(三十五)|SVM-软边界拉格朗日方程乘子非负性理解
  • token过期为了保证安全,refresh token不过期,那么拿到refresh token就可以获取token,不还是不安全吗
  • Java基础-模拟多线程安全问题场景
  • 开发板RK3568和stm32的异同:
  • 深入理解 SwiftUI 布局:VStack、HStack 和表单控件全解析
  • 关于数据结构6-哈希表和5种排序算法
  • 【Spring Boot 快速入门】八、登录认证(一)基础登录与认证校验
  • 数据结构:哈希表、排序和查找
  • F I R S T Q U A R T E R 2 0 2 5 - - M a y 2 2 2 0 2 5
  • LINUX88 变量:命令定义;普通数组定义(复);declare -i /-x
  • 【其他分类】Showrunner AI版的Netflix 互动故事创作平台 进行动画生成与微调、角色场景创建
  • MySQL的触发器:
  • 温室韭菜收割机的设计cad【12张】三维图+设计说明书
  • 9:USB摄像头的最后一战(上):MP4音视频合封!
  • Redis(九):Redis高并发高可用(集群Cluster)
  • Javascript中的一些常见设计模式
  • react+echarts实现变化趋势缩略图
  • Elasticsearch:在向量搜索中使用 Direct IO
  • 富士 Instax 12 和 Instax Mini 11 有什么区别?推荐购买哪一款?
  • Microsoft Dynamics AX 性能优化解决方案
  • 【Python-Day 38】告别通用错误!一文学会创建和使用 Python 自定义异常
  • 临床医学 RANDOM SURVIVAL FORESTS(randomSurvivalForest)-2 python 例子