虚拟化的价值与意义
虚拟化通过软件手段对物理资源进行抽象和管理,实现资源的按需分配,显著提高系统资源利用率。其核心价值在于:
- 资源隔离与共享:允许多个应用或服务共享同一物理资源,同时保持独立性。
- 灵活性:快速部署、迁移和扩展计算资源,适应业务需求变化。
- 成本优化:减少硬件投入,降低运维复杂度。
虚拟化技术
常见技术包括 Hypervisor(虚拟机监视器),分为两类:
- Type 1(裸金属型):直接运行在硬件上(如 VMware ESXi、Microsoft Hyper-V)。
- Type 2(宿主机型):运行在操作系统之上(如 KVM、VirtualBox)。
容器与虚拟机的区别
- 容器:轻量级,共享宿主操作系统内核,启动快(秒级),资源占用低。
- 虚拟机:完整虚拟化硬件,独立操作系统,启动慢(分钟级),资源消耗高。
Docker 基本原理
Docker 是一种容器引擎,基于以下核心组件:
- 镜像(Image):只读模板,包含运行环境和应用代码。
- 容器运行时(Container):镜像的运行实例,具有可写层。
- 镜像仓库(Registry):存储和分发镜像(如 Docker Hub、阿里云仓库)。
底层依赖两项关键技术:
- cgroups:限制和管理资源(CPU、内存等)。
- Namespaces:隔离进程、网络、文件系统等(共6种命名空间)。
Docker 基本操作
镜像管理
-
查看镜像列表:
bashdocker images -
拉取镜像:
bashdocker pull nginx:latest -
删除镜像:
bashdocker rmi nginx:latest -
导出/导入镜像:
bashdocker save -o nginx.tar nginx:latest docker load -i nginx.tar
容器管理
-
创建并启动容器:
bashdocker run -itd --name my_container nginx:latest -
查看容器:
bashdocker ps -a -
进入容器:
bashdocker exec -it my_container /bin/bash -
删除容器:
bashdocker rm -f my_container -
文件复制:
bashdocker cp /host/file.txt my_container:/path/
容器与镜像转换
-
导出容器为文件:
bashdocker export my_container > my_container.tar -
导入为镜像:
bashcat my_container.tar | docker import - new_image:tag
扩展任务
- Dockerfile 实践:学习编写 Dockerfile 构建自定义镜像。
- 容器网络 :探索 Docker 网络模式(如
bridge、host)。 - 数据持久化:使用卷(Volume)实现容器数据存储。
- 编排工具:了解 Kubernetes 或 Docker Swarm 管理多容器应用。
通过以上内容,可系统掌握 Docker 的核心概念与操作,适用于开发、测试及生产环境部署。