Linux进阶之容器与虚拟化

Linux 提供强大的容器和虚拟化技术,用于高效地部署和管理应用。容器技术如 Docker 提供了轻量级虚拟化,而 KVM 和 Vagrant 则支持完整的虚拟机环境。
本章将详细讲解 Docker 容器基础、KVM 虚拟机管理,以及使用 Vagrant 进行自动化虚拟机创建。


一、Docker 与容器基础

1、Docker 简介

Docker 是一种基于容器的虚拟化技术,它允许在一个主机上运行多个隔离的应用。
特点

  • 轻量级:与传统虚拟机相比,容器使用更少的资源。
  • 快速启动:容器的启动速度通常在秒级。
  • 可移植:通过容器镜像实现一致的运行环境。

2、安装 Docker

在 Ubuntu 上安装

sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

验证安装

docker --version

3、创建与管理 Docker 容器

拉取镜像
从 Docker 官方镜像仓库拉取镜像:

docker pull ubuntu:latest

运行容器
使用镜像启动一个交互式容器:

docker run -it ubuntu:latest /bin/bash

列出容器
查看运行中的容器:

docker ps

查看所有容器(包括停止的):

docker ps -a

停止容器

docker stop <container_id>

删除容器

docker rm <container_id>

示例
创建并运行一个简单的容器:

docker run -d -p 8080:80 nginx

说明:

  • -d:后台运行容器。
  • -p:映射主机端口到容器端口。

运行后,可通过访问 http://localhost:8080 测试 Nginx 服务。


二、KVM 与虚拟机管理

1、KVM 简介

KVM(Kernel-based Virtual Machine)是 Linux 内核的一个模块,用于提供完整的虚拟化功能。


2、安装 KVM 和管理工具

安装 KVM

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients
sudo systemctl enable libvirtd
sudo systemctl start libvirtd

验证安装
检查是否支持 KVM:

egrep -c '(vmx|svm)' /proc/cpuinfo

安装管理工具

  • 命令行管理工具:virsh
  • 图形化管理工具:virt-manager
sudo apt install virt-manager

3、管理虚拟机

创建虚拟机
使用 virt-manager 创建虚拟机,步骤包括:

  1. 打开 virt-manager 图形界面。
  2. 选择创建新虚拟机。
  3. 指定 ISO 文件作为安装源。
  4. 配置 CPU、内存、磁盘等资源。

命令行管理
创建虚拟机:

virt-install --name test-vm --ram 2048 --vcpus 2 \
--disk path=/var/lib/libvirt/images/test-vm.qcow2,size=20 \
--cdrom /path/to/iso

启动虚拟机:

virsh start test-vm

查看虚拟机状态:

virsh list --all

三、使用 Vagrant 进行自动化虚拟机创建

1、Vagrant 简介

Vagrant 是一个虚拟机管理工具,专注于提供开发环境的一致性和易用性。
特点

  • 自动化:通过 Vagrantfile 定义虚拟机环境。
  • 跨平台:支持 VirtualBox、KVM 等虚拟化技术。

2、安装 Vagrant

在 Ubuntu 上安装

sudo apt install vagrant

验证安装

vagrant --version

3、创建 Vagrant 环境

初始化项目

vagrant init ubuntu/bionic64

启动虚拟机

vagrant up

连接虚拟机

vagrant ssh

停止虚拟机

vagrant halt

销毁虚拟机

vagrant destroy

4、示例 Vagrantfile

以下是一个简单的 Vagrantfile 配置示例:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "1024"
  end
end

说明

  • config.vm.box:指定基础镜像。
  • config.vm.network:配置端口转发。
  • vb.memory:设置虚拟机内存大小。

四、小结

通过本章学习,你掌握了以下内容:

  1. Docker 容器基础

    • 使用 Docker 拉取镜像、运行和管理容器。
  2. KVM 虚拟机管理

    • 使用 virshvirt-manager 创建和管理虚拟机。
  3. Vagrant 自动化虚拟机创建

    • 定义虚拟机环境并自动化部署。

容器和虚拟化技术的结合,能满足不同场景下的资源隔离需求,为开发与运维工作提供灵活可靠的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间酒中仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值