Docker Desktop 是桌面端 Docker 工具(支持 Windows/macOS),整合了 Docker Engine、Docker CLI、Docker Compose、镜像仓库管理等核心功能,新手可按「安装 → 基础操作 → 实战案例 → 进阶配置」的步骤快速上手,以下是详细使用指南:
docker --version # 查看 Docker 版本
docker-compose --version # 查看 Compose 版本(Docker Desktop 已内置)
docker info # 查看 Docker 系统信息(验证服务正常运行)
使用前先明确 3 个核心概念,避免 confusion:
| 概念 | 通俗理解 | 作用 |
|---|---|---|
| 镜像(Image) | 软件安装包(只读模板) | 用于创建容器,包含运行环境+应用 |
| 容器(Container) | 镜像运行后的实例(可读写) | 独立的运行环境,隔离性强 |
| 仓库(Registry) | 镜像存储服务器(如 Docker Hub) | 下载/上传镜像(类似 App Store) |
Docker Desktop 支持「终端 CLI」和「图形界面 GUI」两种操作方式,新手可先用 GUI 直观了解,再用 CLI 高效操作。
Docker Hub 是官方公共镜像仓库,包含 Ubuntu、Nginx、MySQL 等常用镜像,命令格式:
docker pull 镜像名:标签(标签默认 latest,即最新版)。
示例:下载 Nginx 镜像(Web 服务器)
docker pull nginx:latest # 拉取最新版 Nginx
GUI 操作:打开 Docker Desktop → 切换到「Images」标签 → 点击「Pull」,输入
nginx:latest 即可。
docker images # 列出所有本地镜像
docker image ls # 同上,简写形式
GUI 操作:直接在「Images」标签下查看所有镜像(包含大小、标签、ID)。
# 方式1:通过镜像名+标签删除
docker rmi nginx:latest
# 方式2:通过镜像ID删除(更精准,ID可通过 docker images 查看)
docker rmi 镜像ID前3-4位 # 如 docker rmi abc1
注意:若镜像已创建容器,需先删除容器再删除镜像;GUI 操作:在镜像右侧点击「⋮」→ 选择「Remove」。
容器是镜像的运行实例,所有应用都在容器中运行。
命令格式:
docker run [选项] 镜像名:标签 [容器内命令]
常用选项:
-d:后台运行( detached 模式,推荐);
-p 主机端口:容器端口:端口映射(外部访问容器必须配置);
--name 容器名:自定义容器名称(方便管理);
-it:交互式运行(如进入容器终端,适合调试)。
示例 1:后台运行 Nginx 容器(端口映射 8080→80)
docker run -d -p 8080:80 --name my-nginx nginx:latest
验证:打开浏览器访问
http://localhost:8080,能看到 Nginx 欢迎页即成功。
示例 2:交互式运行 Ubuntu 容器(进入容器终端)
docker run -it --name my-ubuntu ubuntu:latest /bin/bash
此时会进入 Ubuntu 容器的命令行,可执行
ls、
apt update 等 Linux 命令;退出容器:输入
exit(容器会停止运行,若想后台运行可加
-d 并配合
docker exec 进入)。
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器(包含停止的)
GUI 操作:切换到「Containers」标签,直观查看容器状态(运行中/停止)、端口映射、日志等。
# 启动停止的容器(通过容器名或ID)
docker start my-nginx # 容器名
docker start 容器ID前3位 # 如 docker start 123
# 停止运行中的容器
docker stop my-nginx
# 重启容器
docker restart my-nginx
GUI 操作:在容器右侧点击「Start」「Stop」「Restart」按钮。
# 格式:docker exec -it 容器名/ID 终端命令
docker exec -it my-nginx /bin/bash # Nginx 容器(基于 Debian)
docker exec -it my-ubuntu /bin/bash # Ubuntu 容器
说明:
-it 是「交互式+终端」组合,必须加;不同镜像的终端可能不同(如 Alpine 用
/bin/sh)。
docker logs my-nginx # 查看容器日志(实时输出)
docker logs -f my-nginx # 实时跟踪日志(类似 tail -f)
GUI 操作:在容器右侧点击「Logs」,直接查看日志。
# 先停止容器(运行中的容器无法直接删除)
docker stop my-nginx
# 再删除容器
docker rm my-nginx
# 强制删除运行中的容器(不推荐)
docker rm -f my-nginx
# 批量删除所有停止的容器
docker rm $(docker ps -a -q)
GUI 操作:在容器右侧点击「⋮」→ 选择「Remove」。
容器默认是临时存储,删除容器后数据会丢失,需通过「数据卷(Volume)」或「主机目录挂载」持久化数据。
C:
ginx-html,macOS:
~/nginx-html);启动容器时挂载目录:
# Windows 示例(注意路径格式:/c/代表 C盘)
docker run -d -p 8080:80 --name my-nginx -v /c/nginx-html:/usr/share/nginx/html nginx:latest
# macOS 示例
docker run -d -p 8080:80 --name my-nginx -v ~/nginx-html:/usr/share/nginx/html nginx:latest
说明:
-v 主机路径:容器路径 表示将主机目录挂载到容器的 Nginx 网站根目录;验证:在本地
nginx-html 中创建
index.html(内容任意),访问
http://localhost:8080 会显示自定义内容,删除容器后本地文件仍存在。
Docker Compose 是 Docker 官方的多容器编排工具,通过
docker-compose.yml 文件定义多个服务(如前端、后端、数据库),一键启动/停止。
docker-demo),在文件夹内创建
docker-compose.yml 文件;写入以下内容(定义 Nginx 和 MySQL 两个服务):
version: '3.8' # Compose 文件版本(需与 Docker 兼容)
services:
# Nginx 服务
nginx:
image: nginx:latest
ports:
- "8080:80" # 端口映射
volumes:
- ./nginx-html:/usr/share/nginx/html # 本地目录挂载
restart: always # 容器退出时自动重启
# MySQL 服务
mysql:
image: mysql:8.0
ports:
- "3306:3306" # 数据库端口映射
environment:
MYSQL_ROOT_PASSWORD: 123456 # root 密码(必填)
MYSQL_DATABASE: testdb # 自动创建的数据库名
volumes:
- mysql-data:/var/lib/mysql # 数据卷(持久化数据库数据)
restart: always
volumes:
mysql-data: # 定义数据卷(自动创建,无需手动建目录)
启动服务:
docker-demo 文件夹,执行以下命令(Compose 会自动拉取镜像、创建容器并启动):
docker-compose up -d # -d 后台运行
验证:
Nginx:访问
http://localhost:8080;MySQL:用数据库工具(如 Navicat)连接
localhost:3306,用户名 root,密码 123456,可看到
testdb 数据库; 其他操作:
docker-compose down # 停止并删除容器、网络(数据卷不会删除)
docker-compose logs # 查看所有服务日志
docker-compose restart # 重启所有服务
镜像加速(解决拉取慢问题):
打开 Docker Desktop → 点击右上角齿轮图标(设置)→ 「Docker Engine」;在配置文件中添加镜像源(如阿里云、网易云加速),示例:
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://hub-mirror.c.163.com",
"https://cr.console.aliyun.com/" // 阿里云需登录后获取个人加速地址
]
}
点击「Apply & Restart」生效。 资源限制(调整 CPU/内存):
设置 → 「Resources」→ 可调整 CPU 核心数、内存大小、磁盘空间等(根据电脑配置合理分配,避免卡顿)。WSL 2 集成(Windows 特有):
若系统支持 WSL 2,可在设置 → 「WSL Integration」中开启,选择要集成的 WSL 发行版(如 Ubuntu),这样可在 WSL 终端中直接使用 Docker 命令。Windows 安装失败(提示 Hyper-V 未开启):
按下
Win+R,输入
optionalfeatures,勾选「Hyper-V」「容器」,重启电脑;若系统是 Windows 10 家庭版,需先通过脚本开启 Hyper-V(网上搜索「Windows 10 家庭版开启 Hyper-V」)。 容器启动后无法访问(如 Nginx 8080 端口):
检查端口是否被占用:Windows 用
netstat -ano | findstr 8080,macOS 用
lsof -i :8080;确认容器端口映射正确(
-p 主机端口:容器端口 未写反);防火墙是否放行该端口。 拉取镜像超时:
配置镜像加速(见「进阶配置」);检查网络连接,或切换网络(如手机热点)。Docker Desktop 的核心流程是:「拉取镜像 → 创建容器 → 运行应用 → 管理容器/镜像」,新手建议先通过简单镜像(如 Nginx、Ubuntu)熟悉基础命令,再用 Docker Compose 尝试多容器应用部署。
更多高级用法(如自定义镜像 Dockerfile、私有仓库、容器网络)可后续逐步学习,官方文档(Docker Docs)是最佳参考资料。