Docker Desktop 安装与操作手册

一、前言

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker Desktop 是 Docker 官方提供的桌面应用,简化了在 Windows 和 macOS 系统上使用 Docker 的流程。

本手册将详细介绍 Docker Desktop 的安装过程、镜像源配置以及常用操作命令。

二、系统要求

Windows 系统要求

macOS 系统要求

  • macOS 10.15 Catalina 或更高版本
  • Apple 芯片或 Intel 芯片均可
  • 至少 4GB 内存

三、Docker Desktop 安装步骤

3.1 Windows 系统安装

  1. 下载安装包
    访问 Docker 官方网站(https://www.docker.com/products/docker-desktop)下载最新版本的 Docker Desktop for Windows 安装包。
    请添加图片描述

  2. 运行安装程序
    双击下载的安装文件(通常是 .exe 格式),启动安装向导。

  3. 安装配置

    • 在安装界面中,保持默认选项即可(建议勾选 “Use WSL 2 instead of Hyper-V” 以获得更好的性能)
    • 点击 “OK” 开始安装
  4. 完成安装
    安装完成后,点击 “Close and restart” 重启电脑。

  5. 启动 Docker
    电脑重启后,Docker 会自动启动,在任务栏中会出现 Docker 图标。等待图标变为稳定状态(不再闪烁),表示 Docker 已成功启动。

    在这里插入图片描述

3.2 macOS 系统安装

  1. 下载安装包
    访问 Docker 官方网站下载 Docker Desktop for Mac 安装包(.dmg 格式)。

  2. 安装 Docker

    • 双击下载的 .dmg 文件,将 Docker 拖放到 Applications 文件夹中。
  3. 启动 Docker

    • 在 Applications 文件夹中找到 Docker 并点击启动。
    • 首次启动时,系统可能会提示 “Docker 已损坏” 或 “无法打开”,这是因为 macOS 的安全设置,可在 “系统偏好设置 > 安全性与隐私” 中点击 “仍要打开”。
    • 等待 Docker 启动完成,菜单栏中会出现 Docker 图标。

四、镜像仓库配置

为了加快 Docker 镜像的拉取速度,我们需要配置国内镜像源。以下是配置步骤:

  1. 打开 Docker 配置界面

    • Windows:右键点击任务栏中的 Docker 图标,选择 “Settings”
    • macOS:点击菜单栏中的 Docker 图标,选择 “Preferences”
  2. 进入 Docker Engine 配置

    • 在左侧导航栏中找到并点击 “Docker Engine”
  3. 配置镜像源

    • 在配置文件中找到 “registry-mirrors” 选项,如果没有则添加
    • 将提供的镜像源地址添加到数组中:
{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "debug": false,
  "experimental": false,
  "insecure-registries": null,
  "registry-mirrors": [
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc",
    "https://do.nark.eu.org",
    "https://dc.j8.work",
    "https://dockerproxy.com",
    "https://gst6rzl9.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "http://mirrors.ustc.edu.cn/",
    "https://mirrors.tuna.tsinghua.edu.cn/",
    "http://mirrors.sohu.com/",
    "https://registry.docker-cn.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}

在这里插入图片描述

  1. 应用配置
    • 点击 “Apply & Restart” 按钮,Docker 将会重启并应用新的配置

五、基本操作指南

5.1 验证安装

打开命令行工具(Windows 用 PowerShell 或命令提示符,macOS 用终端),输入以下命令验证 Docker 是否安装成功:

docker --version

如果安装成功,会显示类似以下信息:

Docker version 20.10.x, build xxxxxxx

进一步验证 Docker 功能是否正常:

docker run hello-world

如果一切正常,会显示 “Hello from Docker!” 等欢迎信息。

5.2 常用 Docker 命令

镜像相关命令
  1. 拉取镜像 参考Docker拉取ubuntu镜像并建立环境_docker pull ubuntu-CSDN博客
#搜索ubuntu镜像(需全局代理模式)
docker search ubuntu 

docker pull [镜像名称]:[标签]
# 示例:拉取最新版 Ubuntu 镜像

docker pull ubuntu:latest

在这里插入图片描述

  1. 查看本地镜像
docker images

请添加图片描述

  1. 删除镜像
docker rmi [镜像ID或镜像名]
# 示例
docker rmi ubuntu:latest
容器相关命令
  1. 运行容器
docker run [选项] [镜像名称] [命令]
# 示例:运行一个 Ubuntu 容器并进入交互模式
docker run -it ubuntu /bin/bash
  1. 查看运行中的容器
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
  1. 停止容器
docker stop [容器ID或容器名]
  1. 启动已停止的容器
docker start [容器ID或容器名]
  1. 进入运行中的容器
docker exec -it [容器ID或容器名] /bin/bash
  1. 删除容器
docker rm [容器ID或容器名]

5.3 示例:运行一个 Nginx 服务器

  1. 拉取 Nginx 镜像
docker pull nginx:latest
  1. 运行 Nginx 容器
docker run -d -p 8090:80 --name mynginx nginx
  • -d:后台运行容器
  • -p 8090:80:将容器的 80 端口映射到主机的 8090 端口
  • --name mynginx:给容器命名为 mynginx
  1. 访问 Nginx 服务
    在浏览器中访问 http://localhost:8090,应该能看到 Nginx 的默认欢迎页面。

  2. 停止并删除 Nginx 容器

docker stop mynginx
docker rm mynginx

六、高级操作

6.1 构建自定义镜像

步骤 1:准备应用文件和 Dockerfile
  1. 创建一个文件夹(比如在桌面创建 my-node-app 文件夹):
    打开 PowerShell,执行:

    cd Desktop  # 进入桌面
    mkdir my-node-app  # 创建文件夹
    cd my-node-app  # 进入文件夹
    
  2. 创建 package.json(定义应用依赖):
    my-node-app 文件夹里,右键新建文本文件,重命名为 package.json(注意删除 .txt 后缀),内容:

    {
      "name": "my-node-app",
      "version": "1.0.0",
      "dependencies": {
        "express": "^4.17.1"  
      }
    }
    
  3. 创建 app.js(应用代码):
    同样新建文本文件,重命名为 app.js,内容:

    const express = require('express');
    const app = express();
    const port = 3000;
    
    app.get('/', (req, res) => {
      res.send('Hello from Docker (Windows)!'); 
    });
    
    app.listen(port, () => {
      console.log(`应用运行在 http://localhost:${port}`);
    });
    
  4. 创建 Dockerfile
    新建文本文件,重命名为 Dockerfile(无后缀)。

    FROM node:14
    WORKDIR /app
    COPY package*.json ./
    RUN npm install
    COPY . .
    EXPOSE 3000
    CMD ["node", "app.js"]
    
步骤 2:构建自定义镜像(执行 docker build 命令)

在 PowerShell 中确保当前目录是 my-node-app(通过 cd 命令确认),执行:

docker build -t mynodeapp:1.0 .

命令解释:

  • -t mynodeapp:1.0:给镜像起个名字(mynodeapp)和版本号(1.0),方便后续引用。
  • 最后的 .:表示 “以当前文件夹中的 Dockerfile 为构建依据”。

构建过程说明:

  • 第一次运行会慢(需要下载 node:14 基础镜像,约几百 MB),后续会缓存。
  • 若出现 npm install 失败,可能是网络问题,可检查 Docker 镜像源配置(之前手册中配置的国内源能加速)。
  • 成功后,执行 docker images 命令,能看到 mynodeapp:1.0 说明构建成功。
步骤 3:运行自定义镜像(执行 docker run 命令)

在 PowerShell 中执行:

docker run -p 3000:3000 mynodeapp:1.0

命令解释:

  • -p 3000:3000:将 Windows 主机的 3000 端口与容器内的 3000 端口绑定(这样才能通过 localhost:3000 访问容器内的应用)。
  • 若直接运行,命令行会 “挂起”(显示容器内的日志,如 应用运行在 http://localhost:3000),这是正常的(应用在前台运行)。
步骤 4:验证效果

打开浏览器,访问 http://localhost:3000,会看到页面显示 Hello from Docker (Windows)!,说明:

  • 镜像构建成功,包含了 Node.js 环境、依赖和应用代码。

  • 容器运行正常,端口映射生效,能通过 Windows 主机访问容器内的应用。

6.2 使用 Docker Compose

Docker Compose 用于定义和运行多容器 Docker 应用程序。

  1. 创建 docker-compose.yml 文件:
version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=mydb
  1. 启动服务:
docker-compose up -d
  1. 停止服务:
docker-compose down
步骤 1:创建项目文件夹
  1. 打开 “文件资源管理器”,进入 桌面,右键 → 新建 → 文件夹,命名为 compose-nginx-mysql
  2. 记住文件夹路径(比如 C:\Users\你的用户名\Desktop\compose-nginx-mysql),后续要用。
步骤 2:创建 docker-compose.yml 文件
  1. 进入 compose-nginx-mysql 文件夹,右键 → 新建 → 文本文档。

  2. 关键操作

    :重命名文件为

    docker-compose.yml
    

    (注意:删除.txt后缀!)。

    • 若看不到后缀:在文件资源管理器顶部 “查看” 选项卡,勾选 “文件扩展名”(否则会变成 docker-compose.yml.txt,Docker 无法识别)。
  3. 用记事本打开 docker-compose.yml,粘贴修正后的 yaml 内容,保存并关闭。

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=mydb
    volumes:
      - mysql-data:/var/lib/mysql
volumes:
  mysql-data:
# 注释解释
version: '3'
services:
  # Nginx 服务(命名为 web)
  web:
    image: nginx  # 使用官方 Nginx 镜像,无需自己构建
    ports:
      - "8080:80"  # Windows 主机的 8080 端口 ↔ 容器的 80 端口(Nginx 默认端口)
    volumes:
      # 本地文件夹 ./html 映射到容器内 Nginx 静态文件目录(实现“本地改文件,容器生效”)
      - ./html:/usr/share/nginx/html
  # MySQL 服务(命名为 db)
  db:
    image: mysql:5.7  # 使用 MySQL 5.7 镜像(稳定版,适合新手)
    environment:
      # 配置 MySQL 根密码和自动创建的数据库
      - MYSQL_ROOT_PASSWORD=password  # 根用户密码(自己可改,比如 123456)
      - MYSQL_DATABASE=mydb  # 容器启动时自动创建名为 mydb 的数据库
    volumes:
      # 数据卷(持久化 MySQL 数据,避免容器删除后数据丢失)
      - mysql-data:/var/lib/mysql
# 定义数据卷(Docker 会自动管理,无需手动创建)
volumes:
  mysql-data:
步骤 3:创建 Nginx 测试页面(验证 web 服务)
  1. compose-nginx-mysql 文件夹内,右键 → 新建 → 文件夹,命名为 html

  2. 进入 html 文件夹,右键 → 新建 → 文本文档,重命名为 index.html(删除 .txt 后缀)。

  3. 打开

    index.html
    

    粘贴以下内容(简单测试页面):

    <!DOCTYPE html>
    <html>
    <head>
      <title>Windows Docker Compose 测试</title>
      <style>h1{color: #2c3e50; text-align: center; margin-top: 100px;}</style>
    </head>
    <body>
      <h1>🎉 成功!Nginx 服务已启动(Windows + Docker Compose)</h1>
    </body>
    </html>
    
  4. 保存并关闭 index.html

步骤 4:启动服务(执行 docker-compose up -d
  1. 打开 PowerShell,导航到项目文件夹:

    • 复制项目文件夹路径(比如 C:\Users\你的用户名\Desktop\compose-nginx-mysql);

    • 在 PowerShell 中输入

      cd 路径
      

      (注意替换成你的路径),回车:

      powershell

      cd C:\Users\你的用户名\Desktop\compose-nginx-mysql
      
    • 验证是否进入正确文件夹:执行 dir 命令,能看到 docker-compose.ymlhtml 文件夹,说明正确。

  2. 执行启动命令:

    powershell

    docker-compose up -d
    
    • 命令解释:up 表示 “创建并启动容器”,-d 表示 “后台运行”(不占用 PowerShell 窗口)。
  3. 等待启动完成(首次慢,需下载镜像):

    • 首次运行会下载 nginx(约 100MB)和 mysql:5.7(约 400MB)镜像,依赖之前配置的国内镜像源(速度会快很多);
    • 成功标志:PowerShell 显示类似以下内容
步骤 5:验证服务是否正常运行
验证 1:Nginx 服务(web 服务)
  • 打开任意浏览器(Edge/Chrome),在地址栏输入 http://localhost:8080,按回车;
  • 若看到 🎉 成功!Nginx 服务已启动(Windows + Docker Compose),说明 Nginx 正常运行,且本地 html 文件夹已成功映射到容器。(可能会遇到显示乱码)
验证 2:MySQL 服务(db 服务)
  • 回到 PowerShell,执行命令 “进入 MySQL 容器内部”:

    powershell

    docker exec -it compose-nginx-mysql-db-1 mysql -u root -p
    
    • 命令解释:exec -it 表示 “交互式进入容器”,compose-nginx-mysql_db_1 是 MySQL 容器名(由 Compose 自动生成,格式为 “项目名_服务名_1”),mysql -u root -p 是登录 MySQL 的命令。
  • 按提示输入密码:password(在 docker-compose.yml 中配置的 MYSQL_ROOT_PASSWORD),回车(输入时密码不显示,正常);

  • 登录成功后,执行命令 “查看数据库”:

    show databases;
    
  • 若看到

    mydb
    

    数据库(如下),说明 MySQL 正常运行,且自动创建了数据库:

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mydb               |  <-- 自动创建的数据库
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    
  • 输入 exit,回车退出 MySQL 命令行。

步骤 6:停止服务(执行 docker-compose down

当不需要服务时,在 PowerShell 中(确保仍在项目文件夹下)执行:

powershel

docker-compose down
  • 命令效果:

    1. 停止并删除 Nginx 和 MySQL 容器;
    2. 删除 Compose 自动创建的网络;
    3. 保留数据卷 mysql-data(MySQL 数据不会丢失,下次启动服务时会继续使用)。
  • 若想 “彻底删除所有数据”(比如测试完成后清理),执行:

    docker-compose down --volumes
    

七、常见问题及解决方法

  1. Docker 启动失败

    • 检查系统是否满足最低要求
    • 确保 Hyper-V 或 WSL 2 已正确安装和启用
    • 重启电脑后再试
  2. 镜像拉取速度慢或失败

    • 检查镜像源配置是否正确
    • 尝试更换其他镜像源
    • 检查网络连接
  3. 端口占用问题

    • 当出现 “port is already allocated” 错误时,表示端口已被占用
    • 解决方案:更换映射的端口号,例如将 -p 8080:80 改为 -p 8081:80
  4. 权限问题

    • 在 Linux 或 macOS 上,如果出现权限错误,尝试在命令前加上 sudo
    • 或者将当前用户添加到 docker 用户组

八、卸载 Docker Desktop

Windows 系统

  1. 从开始菜单中找到 “Docker Desktop”
  2. 选择 “Uninstall” 进行卸载
  3. 按照提示完成卸载过程

macOS 系统

  1. 打开 “Applications” 文件夹
  2. 将 “Docker” 拖到废纸篓
  3. 执行以下命令删除残留文件:
rm -rf ~/Library/Containers/com.docker.docker
rm -rf ~/.docker

九、总结

本手册介绍了 Docker Desktop 的安装、配置和基本操作方法。通过配置国内镜像源,可以显著提高 Docker 镜像的拉取速度。Docker 提供了强大的容器化能力,能够简化应用的开发、测试和部署流程。

如需了解更多 Docker 相关知识,可以参考官方文档:https://docs.docker.com/

十、参考感谢

附录截图:

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐