第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,适合服务器和生产环境。
- 安装流程简述
- 访问官网,选择对应操作系统下载。
- 按照安装向导一步步操作。
- 安装完成后,启动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
- 下载安装包
- 打开Docker官网。
- 选择“Download for Windows”下载适合你系统的安装包(支持Intel和ARM架构)。
- 安装流程
- 双击下载的安装包,按照提示进行安装。
- 安装过程中会提示是否启用WSL2和Hyper-V,建议全部勾选。
- 安装完成后,重启电脑(如有提示)。
- 启动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以获得更好的性能和兼容性。 - 启用步骤
- 打开“控制面板” → “程序” → “启用或关闭Windows功能”。
- 勾选“适用于Linux的Windows子系统”和“虚拟机平台”,点击确定并重启电脑。
- 安装WSL2内核更新包(如有提示,访问微软官方链接下载安装)。
- 在PowerShell中运行:
wsl --set-default-version 2
- 启动Docker Desktop,设置中选择WSL2作为后端引擎。
- 常见问题
- 如遇“WSL2未安装”或“内核版本过低”提示,需手动下载安装WSL2内核包。
- 确保Windows已更新到2004及以上版本。
第六部分:在Mac系统上安装Docker(7分钟)
🎯 讲解要点
- 使用Docker Desktop安装Docker
- M1芯片支持与兼容性
- Mac系统的网络配置
在Mac系统上安装Docker
1. 使用Docker Desktop安装Docker
- 下载安装包
- 访问Docker官网。
- 点击“Download for Mac”,根据你的芯片类型(Intel 或 Apple 芯片/M1/M2)选择对应的安装包。
- 安装流程
- 下载完成后,双击
.dmg
文件,将Docker图标拖入“Applications”文件夹。 - 打开“应用程序”中的Docker Desktop,首次启动时可能需要输入Mac密码进行授权。
- 启动后,屏幕顶部会出现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)的镜像,如
nginx
、mysql
等。 - 如遇到兼容性问题,可尝试在
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服务。
- Docker Desktop会自动将容器的端口映射到本地Mac的端口。例如,运行:
- 网络模式说明
- Mac上不支持
--network=host
模式,容器无法直接使用主机网络,但端口映射功能可以满足大多数开发需求。
- Mac上不支持
- 文件共享与权限
- Docker Desktop默认允许将Mac本地目录挂载到容器中(如
-v ~/mydata:/data
),首次挂载时需在弹窗中授权。 - 注意文件权限和大小写敏感性,Mac默认磁盘为大小写不敏感,Linux容器为大小写敏感。
- Docker Desktop默认允许将Mac本地目录挂载到容器中(如
- 代理与加速器
- 如需配置国内镜像加速器,可在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 为例)
- 更新本地包索引:
sudo apt update
- 安装依赖包:
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
- 添加 Docker 官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 添加 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
- 安装 Docker Engine:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
- 启动 Docker 服务并设置开机自启:
sudo systemctl start docker sudo systemctl enable docker
- 更新本地包索引:
- CentOS 安装示例
- 卸载旧版本(如有):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
- 安装依赖包:
sudo yum install -y yum-utils
- 添加 Docker 官方仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装 Docker Engine:
sudo yum install docker-ce docker-ce-cli containerd.io
- 启动并设置开机自启:
sudo systemctl start docker sudo systemctl enable docker
- 卸载旧版本(如有):
2. 配置非root用户权限
- 添加当前用户到 docker 组
- 创建 docker 用户组(如未创建):
sudo groupadd docker
- 将当前用户加入 docker 组:
sudo usermod -aG docker $USER
- 重新登录或重启终端,使组权限生效。
- 创建 docker 用户组(如未创建):
- 注意事项
- 加入 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. 镜像源设置(以阿里云为例)
- 获取阿里云加速器地址
- 登录阿里云容器镜像服务。
- 进入“镜像加速器”页面,获取专属加速器地址(如
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
- DaoCloud:
3. 解决Docker Hub拉取速度慢的问题
- 配置镜像加速器后效果
配置加速器后,拉取官方镜像(如docker pull ubuntu
)速度会大幅提升,基本可实现秒级下载。 - 拉取测试
- 配置好加速器后,执行:
观察下载速度和稳定性。docker pull ubuntu
- 配置好加速器后,执行:
- 常见问题排查
- 如果配置后仍然慢,检查加速器地址是否正确、网络是否通畅。
- 有时需要重启Docker服务或电脑。
- 部分镜像(如私有镜像或国外小众镜像)可能仍需科学上网。
🔍 实战演示
- 访问阿里云Docker镜像服务
- 配置加速地址:
https://registry.cn-hangzhou.aliyuncs.com
- 进行拉取测试:
docker pull ubuntu
📢 结尾总结(约3分钟) “感谢大家的观看!今天我们深入了解了Docker容器技术,并完介绍了不同操作系统上的安装。如果你有任何问题,欢迎在评论区留言,我们下个视频再见!”