Docker 教程

Ubuntu 版

第一章、Docker 容器简介

前言

本课程是针对网络运维人员、网站前端,后端开发工程师、App后端开发工程师、架构设计师、测试工程师的基础教程。

本课程将从容器原理开始讲解,直至能够部署自己需要的应用服务器。

本课程的内容由作者(魏明择)本人编写,请在线观看,禁止任何形式的复制、转发和修改。

本教程的案例均在 Ubuntu 24.04 LTS 上验证,学习本教程前请先自行安装 Ubuntu 24.04 LTS 操作系统或下载由本站制作的 vmware 虚拟机镜像。

Ubuntu24.04 VMware镜像:

Ubuntu下载和安装方法详见: Ubuntu Linux 简介

前置课程

在学习此内容之前你需要先学习 《Linux教程》。关于Ubuntu 操作系统的安装和虚拟机的下载和安装都在 《Linux教程》 中讲过,这里不在赘述。

为什么要学习 Docker?

Docker(容器技术)已经成为现代软件开发和运维的必备技能,无论是开发、测试、运维还是架构设计,Docker 都能显著提升效率。

为了更深入了解容器技术,我们需要先从虚拟机技术说起。

虚拟机技术

虚拟机技术(Virtual Machine, VM)是一种通过软件模拟完整计算机系统的技术,他允许在单台物理机上运行多个隔离的 虚拟计算机

主流虚拟机产品

技术/产品
公司
特点
VMware ESXi
VMware
企业级虚拟化,高性能,付费授权。
KVM
Linux 社区
开源,集成到 Linux 内核,云厂商广泛使用。
VMware Workstation 或 VMware Fusion
VMware
个人电脑虚拟化,付费。
Hyper-V
Microsoft
Windows 内置,支持 Linux 虚拟机。
VirtualBox
Oracle
免费,适合开发和测试。
Xen
Linux 基金会
早期开源虚拟化,AWS EC2 初代采用。

国内云厂商大多使用的是 VMware ESXiKVM 平台。

虚拟机的特点

特性
说明
完全隔离
虚拟机之间互不干扰,崩溃或病毒不影响宿主机和其他 VM。
硬件虚拟化
模拟 CPU、内存、磁盘等硬件资源,支持跨平台运行(如 Mac 上跑 Windows)。
独立系统
每个 VM 需独立安装操作系统和驱动,占用资源较多。
快照与克隆
可保存虚拟机状态(快照),快速复制环境(克隆)。

虚拟机的应用场景

  1. 企业服务器整合:单台物理机运行多个业务 VM,节省硬件成本。
  2. 跨平台开发:Mac 用户通过 VM 运行 Windows 专属软件(如 IE 浏览器)。
  3. 安全测试:在隔离的 VM 中分析恶意软件或漏洞。
  4. 传统应用迁移:老旧系统(如 Windows Server 2003)在 VM 中延续使用。
  5. 云服务构建:使用虚拟机技术创建云平台(公有云和私有云)。

虚拟机的局限性

  1. 资源开销:运行多个 VM 需大量 CPU 和内存。
  2. 启动慢:不适合需要快速扩缩容的场景。
  3. 管理复杂:需维护多个 OS 的补丁和许可证。

虚拟机虽然好,但由于存在多个操作系统,因此操作系统占用的系统开销比较大。综上所述,容器的技术变得更加流行。