第001期 - docker

>docker介绍,第一期文档

Docker容器技术第一部分

第一部分:容器技术介绍(10分钟)

🎯 讲解要点

  • 什么是容器?它与虚拟机的区别
  • 为什么Docker成为主流容器技术
  • Docker的核心概念:镜像、容器、仓库
  • 容器的优势与应用场景

1. 什么是容器?它与虚拟机的区别

  • 容器的定义
    容器是一种轻量级、可移植、自给自足的软件运行环境。它将应用程序及其所有依赖(如库、配置文件等)打包在一起,通过操作系统内核的隔离机制(如命名空间、cgroups)实现进程级别的隔离。
  • 容器的本质
    容器本质上是运行在宿主机上的一个或多个隔离进程,这些进程共享宿主机的操作系统内核,但彼此之间互不影响。
  • 与虚拟机的区别
    • 虚拟机:每个虚拟机都需要完整的操作系统,运行在虚拟化的硬件之上(如VMware、VirtualBox),资源消耗大,启动慢。
    • 容器:多个容器共享同一个操作系统内核,只包含应用及其依赖,资源占用小,启动极快(秒级甚至毫秒级)。
    • 对比图示:建议用一张对比图展示容器和虚拟机的架构差异。

2. 为什么Docker成为主流容器技术

  • 易用性
    Docker 提供了简单易用的命令行工具和API,极大降低了容器技术的学习和使用门槛。
  • 生态完善
    拥有庞大的镜像仓库(Docker Hub),用户可以直接拉取和发布镜像,极大提升开发效率。
  • 跨平台兼容
    支持Linux、Windows、Mac等多种操作系统,开发、测试、生产环境高度一致。
  • 社区活跃
    拥有全球最大的容器社区,文档丰富,遇到问题容易找到解决方案。
  • 标准化推动者
    Docker推动了OCI(开放容器标准)的制定,成为行业事实标准。

3. Docker的核心概念:镜像、容器、仓库

  • 镜像(Image)
    镜像是一个只读的模板,包含了运行应用所需的所有内容(代码、运行时、库、环境变量、配置文件等)。可以理解为“应用快照”。
  • 容器(Container)
    容器是镜像的运行实例。每次基于镜像启动容器时,都会生成一个独立的、可运行的环境。容器可以启动、停止、删除,生命周期灵活。
  • 仓库(Registry)
    仓库用于存储和分发镜像。最常用的是Docker Hub,也可以搭建私有仓库(如Harbor)。开发者可以将自己的镜像推送到仓库,或从仓库拉取他人镜像。
  • 三者关系
    镜像是模板,容器是实例,仓库是存储和分发镜像的平台。

4. 容器的优势与应用场景

  • 优势
    • 启动快:秒级启动,极大提升开发和部署效率。
    • 资源占用低:共享内核,节省内存和CPU资源。
    • 一致性:开发、测试、生产环境高度一致,解决“在我电脑上能跑”的问题。
    • 易于扩展和迁移:容器可以在不同平台、云服务间无缝迁移。
    • 易于自动化和持续集成:与CI/CD工具无缝集成,实现自动化测试和部署。
  • 典型应用场景
    • 微服务架构:每个服务一个容器,独立部署和扩展。
    • 持续集成/持续部署(CI/CD):自动化测试、构建、发布。
    • 快速搭建开发和测试环境:一条命令还原完整环境。
    • 大数据、AI等需要环境隔离的场景。
    • 云原生应用、Serverless等新型架构。

第二部分:课程文档和源码(5分钟)

🎯 讲解要点

  • 课程文档的作用
  • 课程配套源码在哪里获取

第三部分:视频播放器使用方法(3分钟)

🎯 讲解要点

  • 如何调整播放速度
  • 如何使用字幕与讲义
  • 课程互动方式

第四部分:Docker安装介绍(5分钟)

🎯 讲解要点

  • Docker的官方安装方式
  • 需要的系统环境
  • Docker Desktop与Docker Engine的区别

Docker安装介绍(5分钟)

1. Docker的官方安装方式

  • 官网下载安装包
    Docker官方为不同操作系统(Windows、macOS、Linux)都提供了安装包和详细的安装文档。推荐大家优先从Docker官网下载,确保软件的安全和最新版本。
  • 平台区分
    • Windows/macOS:推荐使用 Docker Desktop,一体化安装,集成了图形界面和命令行工具,适合大多数开发者和学习者。
    • Linux:直接通过包管理器(如APT、YUM、DNF等)安装 Docker Engine,适合服务器和生产环境。
  • 安装流程简述
    1. 访问官网,选择对应操作系统下载。
    2. 按照安装向导一步步操作。
    3. 安装完成后,启动Docker并进行简单测试(如docker run hello-world)。

2. 需要的系统环境

  • 硬件要求
    • 推荐至少2核CPU、4GB内存(更高配置体验更佳)。
    • Windows和Mac建议使用较新型号的电脑,部分老旧设备可能不支持虚拟化。
  • 操作系统要求
    • Windows:Windows 10 64位专业版/企业版/教育版,需支持WSL2(Windows子系统Linux 2)。
    • macOS:macOS 10.15及以上,支持Intel和Apple Silicon(M1/M2)芯片。
    • Linux:主流发行版(如Ubuntu、CentOS、Debian等),内核版本建议3.10及以上。
  • 虚拟化支持
    • Windows和Mac安装Docker Desktop时,需确保BIOS已开启虚拟化(VT-x/AMD-V)。
    • Windows需启用Hyper-V或WSL2,Mac需支持Hypervisor框架。

3. Docker Desktop与Docker Engine的区别

  • Docker Desktop
    • 面向Windows和Mac用户的桌面版Docker,集成了Docker Engine、Docker CLI、Docker Compose、Kubernetes等工具。
    • 提供图形化界面,便于管理镜像、容器、网络等资源。
    • 适合开发、学习和测试环境,安装简单,易于上手。
    • 支持自动更新和一键重置环境。
  • Docker Engine
    • Docker的核心组件,负责容器的创建、运行和管理。
    • 主要运行在Linux服务器上,通过命令行操作,无图形界面。
    • 适合生产环境和云服务器,资源占用更低,灵活性更高。
    • 需要手动配置和管理,适合有一定基础的用户。
  • 总结对比
    • Docker Desktop = Docker Engine + 图形界面 + 便捷工具,适合桌面开发者。
    • Docker Engine = 纯命令行核心,适合服务器和生产环境。

第五部分:在Windows上安装Docker(10分钟)

🎯 讲解要点

  • 使用Docker Desktop安装Docker
  • 启用WSL2支持
  • Docker CLI的基本操作

在Windows上安装Docker

1. 使用Docker Desktop安装Docker

  • 下载安装包
    1. 打开Docker官网
    2. 选择“Download for Windows”下载适合你系统的安装包(支持Intel和ARM架构)。
  • 安装流程
    1. 双击下载的安装包,按照提示进行安装。
    2. 安装过程中会提示是否启用WSL2和Hyper-V,建议全部勾选。
    3. 安装完成后,重启电脑(如有提示)。
    4. 启动Docker Desktop,首次启动时会自动初始化环境。
  • 注意事项
    • Windows 10 家庭版用户需确保已安装WSL2(Windows Subsystem for Linux 2)。
    • 安装过程中如遇到权限或虚拟化相关报错,需进入BIOS开启虚拟化(VT-x/AMD-V)。

2. 启用WSL2支持

  • WSL2简介
    WSL2是微软提供的Windows子系统Linux 2,Docker Desktop依赖WSL2以获得更好的性能和兼容性。
  • 启用步骤
    1. 打开“控制面板” → “程序” → “启用或关闭Windows功能”。
    2. 勾选“适用于Linux的Windows子系统”和“虚拟机平台”,点击确定并重启电脑。
    3. 安装WSL2内核更新包(如有提示,访问微软官方链接下载安装)。
    4. 在PowerShell中运行:
      wsl --set-default-version 2
      
    5. 启动Docker Desktop,设置中选择WSL2作为后端引擎。
  • 常见问题
    • 如遇“WSL2未安装”或“内核版本过低”提示,需手动下载安装WSL2内核包。
    • 确保Windows已更新到2004及以上版本。

第六部分:在Mac系统上安装Docker(7分钟)

🎯 讲解要点

  • 使用Docker Desktop安装Docker
  • M1芯片支持与兼容性
  • Mac系统的网络配置

在Mac系统上安装Docker

1. 使用Docker Desktop安装Docker

  • 下载安装包
    1. 访问Docker官网
    2. 点击“Download for Mac”,根据你的芯片类型(Intel 或 Apple 芯片/M1/M2)选择对应的安装包。
  • 安装流程
    1. 下载完成后,双击.dmg文件,将Docker图标拖入“Applications”文件夹。
    2. 打开“应用程序”中的Docker Desktop,首次启动时可能需要输入Mac密码进行授权。
    3. 启动后,屏幕顶部会出现Docker小鲸鱼图标,等待其变为“Docker Desktop is running”状态。
  • 首次体验
    • 打开终端,输入docker --version,确认安装成功。
    • 运行docker run hello-world,验证Docker环境可用。

2. M1芯片支持与兼容性

  • Apple Silicon(M1/M2)支持
    • Docker Desktop已原生支持Apple Silicon(M1/M2)芯片,无需Rosetta 2即可运行。
    • 下载时务必选择“Apple Chip”版本,避免兼容性问题。
  • 镜像兼容性说明
    • 部分老旧或仅支持x86架构的镜像在M1/M2上可能无法直接运行。
    • 推荐优先选择官方支持多架构(multi-arch)的镜像,如nginxmysql等。
    • 如遇到兼容性问题,可尝试在docker run时加上--platform linux/amd64参数,例如:
      docker run --platform linux/amd64 hello-world
      
  • 常见问题
    • 某些第三方镜像未适配arm64架构时,建议反馈给镜像维护者或查找替代镜像。

3. Mac系统的网络配置

  • 端口映射
    • Docker Desktop会自动将容器的端口映射到本地Mac的端口。例如,运行:
      docker run -d -p 8080:80 nginx
      
      然后在浏览器访问http://localhost:8080即可访问nginx服务。
  • 网络模式说明
    • Mac上不支持--network=host模式,容器无法直接使用主机网络,但端口映射功能可以满足大多数开发需求。
  • 文件共享与权限
    • Docker Desktop默认允许将Mac本地目录挂载到容器中(如-v ~/mydata:/data),首次挂载时需在弹窗中授权。
    • 注意文件权限和大小写敏感性,Mac默认磁盘为大小写不敏感,Linux容器为大小写敏感。
  • 代理与加速器
    • 如需配置国内镜像加速器,可在Docker Desktop的“Settings”→“Docker Engine”中添加加速器地址(如阿里云)。
    • 如Mac处于公司代理环境,可在“Settings”→“Resources”→“Proxies”中配置HTTP/HTTPS代理。

🔍 实战演示

  • 访问Docker官网并下载安装包
  • 配置Docker运行环境
  • 运行一个简单的nginx容器来测试

第七部分:在Linux系统上安装Docker(5分钟)

🎯 讲解要点

  • 使用APT/YUM安装Docker
  • 配置非root用户权限
  • 验证安装是否成功

在Linux系统上安装Docker

1. 使用APT/YUM安装Docker

  • 适用发行版
    • Ubuntu/Debian 系:推荐使用 APT 包管理器。
    • CentOS/RHEL/Fedora 系:推荐使用 YUM 或 DNF 包管理器。
  • 安装步骤(以 Ubuntu 为例)
    1. 更新本地包索引:
      sudo apt update
      
    2. 安装依赖包:
      sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
      
    3. 添加 Docker 官方 GPG 密钥:
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
      
    4. 添加 Docker 官方软件源:
      echo \
        "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
        $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
      
    5. 安装 Docker Engine:
      sudo apt update
      sudo apt install docker-ce docker-ce-cli containerd.io
      
    6. 启动 Docker 服务并设置开机自启:
      sudo systemctl start docker
      sudo systemctl enable docker
      
  • CentOS 安装示例
    1. 卸载旧版本(如有):
      sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
      
    2. 安装依赖包:
      sudo yum install -y yum-utils
      
    3. 添加 Docker 官方仓库:
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      
    4. 安装 Docker Engine:
      sudo yum install docker-ce docker-ce-cli containerd.io
      
    5. 启动并设置开机自启:
      sudo systemctl start docker
      sudo systemctl enable docker
      

2. 配置非root用户权限

  • 添加当前用户到 docker 组
    1. 创建 docker 用户组(如未创建):
      sudo groupadd docker
      
    2. 将当前用户加入 docker 组:
      sudo usermod -aG docker $USER
      
    3. 重新登录或重启终端,使组权限生效。
  • 注意事项
    • 加入 docker 组后,用户可以无需 sudo 直接运行 docker 命令。
    • 出于安全考虑,生产环境建议仅信任的用户加入 docker 组。

3. 验证安装是否成功

  • 检查 Docker 版本
    docker --version
    
  • 运行测试容器
    docker run hello-world
    
    • 该命令会拉取官方测试镜像并运行,若输出“Hello from Docker!”即表示安装成功。
  • 查看 Docker 服务状态
    systemctl status docker
    
  • 常见问题排查
    • 若遇到“permission denied”或“Cannot connect to the Docker daemon”错误,确认用户已加入 docker 组并重新登录。

“Linux用户可以直接通过包管理器安装Docker,例如Ubuntu使用APT,而CentOS使用YUM。”

🔍 实战演示

  • 执行sudo apt update && sudo apt install docker.io
  • 运行systemctl start docker并检查服务状态
  • 允许普通用户运行Docker命令:sudo usermod -aG docker $USER

第八部分:Mac系统中的Docker Desktop替代工具(7分钟)

🎯 讲解要点

  • 适合Mac用户的替代方案推荐Colima

适合Mac用户的Docker Desktop替代方案——Colima

1. 为什么选择Colima?

  • 轻量级:Colima 基于 Lima 虚拟化技术,资源占用更低,启动速度快。
  • 免费开源:Colima 完全开源,无需担心商业授权或收费问题。
  • 兼容性好:支持 Intel 和 Apple Silicon(M1/M2)芯片,适配性强。
  • 与Docker CLI无缝兼容:安装后可直接使用 docker 命令,无需更改开发习惯。
  • 支持Kubernetes:Colima 也可用于本地K8s实验环境。

2. Colima的安装与使用

  • 安装Colima(需先安装Homebrew和Docker CLI)
    在终端输入:
    brew install colima
    
  • 启动Colima
    colima start
    
    • 默认会自动配置好 Docker 环境。
    • 启动后,docker 命令即可正常使用。
  • 验证Docker兼容性
    运行:
    docker run hello-world
    
    • 若能正常输出“Hello from Docker!”说明Colima环境配置成功。

3. Colima的常用操作

  • 停止Colima
    colima stop
    
  • 重启Colima
    colima restart
    
  • 自定义配置(如CPU/内存/磁盘)
    启动时可指定参数,例如:
    colima start --cpu 4 --memory 4
    
  • 支持多种容器后端
    Colima 默认使用 Docker,也支持 containerd。

4. 注意事项与补充说明

  • 文件挂载与网络:Colima 支持本地目录挂载和端口映射,体验与Docker Desktop类似。
  • 图形界面:Colima 主要通过命令行操作,没有图形界面,但可配合如Portainer等Web管理工具。
  • 切换回Docker Desktop:如需切换回Docker Desktop,只需关闭Colima并启动Docker Desktop即可。

5. 适用场景

  • 不想被Docker Desktop收费政策限制的个人或企业用户。
  • 追求更轻量、更快启动速度的开发者。
  • 需要在Apple Silicon(M1/M2)上运行Docker环境的用户。

🔍 实战演示

  • 安装Colima:brew install colima
  • 运行colima start
  • 验证Docker兼容性:docker run hello-world

第九部分:国内用户使用Docker指南(5分钟)

🎯 讲解要点

  • 国内使用Docker的常见问题
  • 镜像源设置(阿里云)
  • 解决Docker Hub拉取速度慢的问题

国内用户使用Docker指南

1. 国内使用Docker的常见问题

  • 访问Docker Hub速度慢或连接超时
    由于网络原因,国内用户在拉取Docker官方镜像时经常遇到下载速度慢、连接超时、甚至无法访问Docker Hub的问题。
  • 部分镜像拉取失败
    某些镜像在国内网络环境下可能直接拉取失败,影响开发和部署效率。
  • 自动更新和依赖拉取不稳定
    使用CI/CD或自动化脚本时,因网络不稳定导致构建失败的情况较多。
  • 解决建议
    • 优先配置国内镜像加速器。
    • 遇到拉取失败时多尝试几次,或更换网络环境。

2. 镜像源设置(以阿里云为例)

  • 获取阿里云加速器地址
    1. 登录阿里云容器镜像服务
    2. 进入“镜像加速器”页面,获取专属加速器地址(如https://xxxxxx.mirror.aliyuncs.com)。
  • 配置Docker加速器
    • 编辑或创建/etc/docker/daemon.json文件(Windows和Mac可在Docker Desktop设置中配置)。
      {
        "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
      }
      
    • 保存后,重启Docker服务:
      sudo systemctl restart docker
      
    • Windows/Mac用户可在Docker Desktop的“Settings”→“Docker Engine”中添加加速器地址并Apply重启。
  • 其他可选国内镜像源
    • DaoCloud: https://f1361db2.m.daocloud.io
    • 腾讯云: https://mirror.ccs.tencentyun.com
    • 网易云: https://hub-mirror.c.163.com

3. 解决Docker Hub拉取速度慢的问题

  • 配置镜像加速器后效果
    配置加速器后,拉取官方镜像(如docker pull ubuntu)速度会大幅提升,基本可实现秒级下载。
  • 拉取测试
    • 配置好加速器后,执行:
      docker pull ubuntu
      
      观察下载速度和稳定性。
  • 常见问题排查
    • 如果配置后仍然慢,检查加速器地址是否正确、网络是否通畅。
    • 有时需要重启Docker服务或电脑。
    • 部分镜像(如私有镜像或国外小众镜像)可能仍需科学上网。

🔍 实战演示

  • 访问阿里云Docker镜像服务
  • 配置加速地址:https://registry.cn-hangzhou.aliyuncs.com
  • 进行拉取测试:docker pull ubuntu

📢 结尾总结(约3分钟) “感谢大家的观看!今天我们深入了解了Docker容器技术,并完介绍了不同操作系统上的安装。如果你有任何问题,欢迎在评论区留言,我们下个视频再见!”