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

Docker Desktop 入门教程(Windows macOS)

🐳 Docker Desktop 入门教程(Windows & macOS)


在这里插入图片描述

一、Docker Desktop 简介

Docker Desktop 是 Docker 官方提供的桌面应用,支持 Windows 和 macOS 系统,集成了 Docker Engine、Docker CLI、Kubernetes、可视化界面等功能,方便开发者快速构建、运行和管理容器化应用。


二、安装 Docker Desktop

✅ 安装步骤:

  1. 下载地址

    • 官网:https://www.docker.com/products/docker-desktop/
  2. Windows 用户

    • 安装前确保已启用 WSL2(Windows Subsystem for Linux 2)
    • 下载 .exe 文件并运行安装程序,按提示一步步安装即可。
  3. macOS 用户

    • 下载 .dmg 文件,拖拽 Docker 应用到 Applications 文件夹。
    • 双击启动 Docker Desktop。
  4. 首次启动

    • 启动后会自动配置 Docker Engine。
    • 登录 Docker Hub 账号(可选)。

三、Docker Desktop 界面介绍

启动 Docker Desktop 后,你会看到主界面分为几个主要模块:

  1. Containers / 容器
    • 显示当前运行和已停止的容器。
  2. Images / 镜像
    • 显示本地已下载或构建的镜像。
  3. Volumes / 数据卷
    • 查看和管理持久化数据卷。
  4. Settings / 设置
    • 可配置 Docker Engine、资源限制、Kubernetes 等。

四、基本概念讲解

名称说明
Image镜像是一个只读模板,用于创建容器(例如:nginx, redis, python:3.9
Container容器是镜像的一个运行实例(你可以启动、停止、删除容器)
Dockerfile用于定义如何构建镜像的文本文件
Volume用于持久化容器数据,避免容器删除后数据丢失
Network容器之间通信的网络环境

五、创建第一个容器(以 Nginx 为例)

方法一:通过 Docker CLI(命令行)

  1. 打开终端(Windows 使用 PowerShell / WSL,macOS 使用 Terminal)
  2. 拉取镜像并运行容器:
docker run -d -p 8080:80 --name mynginx nginx
  • -d:后台运行
  • -p 8080:80:将宿主机的 8080 端口映射到容器的 80 端口
  • --name mynginx:给容器命名
  • nginx:使用的镜像名
  1. 打开浏览器访问:
    http://localhost:8080
    

方法二:通过 Docker Desktop 界面

  1. 进入 Images 页面
  2. 找到 nginx 镜像(如果没有,可以点击“Pull”拉取)
  3. 点击 Run 按钮
  4. 在弹出的窗口中设置:
    • Container name: mynginx
    • Port mapping: 8080:80
    • 点击 Run

六、常用操作指南

1. 查看运行中的容器

  • 进入 Containers 页面,查看所有运行中的容器。
  • 可以点击容器名进入详情页,查看日志、终端、端口等信息。

2. 停止 / 删除容器

  • 点击容器右边的 ❌ 按钮停止容器。
  • 再次点击垃圾桶图标删除容器。

3. 查看容器日志

  • 点击容器名 → 点击 “Logs” 标签页,查看容器输出日志。

4. 进入容器终端

  • 点击容器名 → 点击 “CLI” 或 “Open in Terminal” 进入容器的命令行界面。

七、构建自己的镜像(使用 Dockerfile)

示例:创建一个简单的 Python Web 应用

  1. 创建项目目录,结构如下:
myapp/
│
├── app.py
└── Dockerfile
  1. app.py 内容:
from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello():return "Hello from Docker!"if __name__ == "__main__":app.run(host='0.0.0.0', port=5000)
  1. Dockerfile 内容:
FROM python:3.9-slim
WORKDIR /app
COPY app.py .
EXPOSE 5000
CMD ["python", "app.py"]
  1. 构建镜像:
docker build -t myapp .
  1. 运行容器:
docker run -d -p 5000:5000 myapp
  1. 浏览器访问:
    http://localhost:5000
    

八、数据卷挂载(Volume)

如果你希望容器内的数据持久化保存,可以使用 Volume。

docker run -d -p 5000:5000 \-v $(pwd)/data:/app/data \--name myapp myapp
  • $(pwd)/data:宿主机上的目录
  • /app/data:容器中的目录

九、网络配置

Docker 会自动为容器分配 IP,也可以自定义网络:

docker network create mynetwork
docker run --network mynetwork --name app1 -d myapp
docker run --network mynetwork --name app2 -d anotherapp

十、常见问题

问题解决方法
容器无法访问?检查端口是否映射正确,防火墙是否放行
容器启动失败?查看日志:docker logs 容器名
构建失败?检查 Dockerfile 语法,是否缺少依赖
磁盘空间不足?清理无用镜像和容器:docker image prune -a / docker container prune

十一、进阶学习建议

  • 学习使用 Docker Compose 管理多容器应用
  • 探索 Kubernetes 集成(Docker Desktop 支持内置)
  • 学习编写多阶段构建的 Dockerfile
  • 探索 CI/CD 中使用 Docker 构建部署流程

十二、推荐资源

  • Docker 官方文档:https://docs.docker.com/
  • Docker Hub:https://hub.docker.com/
  • 《Docker — 从入门到实践》中文手册:https://juejin.cn/post/6844903446697938958
  • 视频课程推荐:B站、YouTube 搜索 “Docker 入门”

如果你已经掌握本教程内容,可以尝试使用 Docker Compose 管理多个服务(如 MySQL + Redis + Web 应用)的部署。

如需进一步学习 Docker Compose,请告诉我,我可以为你生成一份详细教程!

祝你学习愉快,早日成为 Docker 高手!🚀

http://www.dtcms.com/a/288617.html

相关文章:

  • 深度学习图像分类数据集—百种病虫害分类
  • Python绘图小工具开发:从零构建数据可视化利器
  • 股票及金融笔记
  • 如何升级Docker部署的Dify
  • Materials Studio学习笔记(二十九)——尿素的几何优化
  • 私有云新势力:Puter+CPolar如何低成本替代商业网盘?
  • 【Linux性能优化】常用工具和实战指令
  • 小架构step系列20:请求和响应的扩展点
  • 制作mac 系统U盘
  • macOs上交叉编译ffmpeg及安装ffmpeg工具
  • pages.json页面路由中,globalStyle的各个属性
  • RPG62.制作敌人攻击波数二:攻击ui
  • 分布式文件系统04-DataNode海量数据分布式高可靠存储
  • 【LeetCode数据结构】单链表的应用——环形链表问题详解
  • 【PTA数据结构 | C语言版】哈夫曼树的实现
  • UDP中的单播,多播,广播
  • 【RAG Agent】Deep Searcher实现逻辑解析
  • 【Unity3D实例-功能-移动】角色移动-通过WSAD(CharacterController方式)
  • 【STM32实践篇】:串口通信
  • Qwen3-8B 的 TTFT 性能分析:16K 与 32K 输入 Prompt 的推算公式与底层原理详解
  • 吴恩达机器学习笔记(3)—线性代数回顾(可选)
  • 【Django】DRF API版本和解析器
  • HTML Style 对象深度解析:从基础到高级应用
  • 上电复位断言的自动化
  • 【数据结构】双向循环链表的实现
  • 18.TaskExecutor获取ResourceManagerGateway
  • 【MySQL】索引中的页以及索引的分类
  • 【Nature Communications】GaN外延层中位错辅助的电子和空穴输运
  • PHPStorm携手ThinkPHP8:开启高效开发之旅
  • selenium4 web自动化测试