容器虚拟化

虚拟化的价值与意义

虚拟化通过软件手段对物理资源进行抽象和管理,实现资源的按需分配,显著提高系统资源利用率。其核心价值在于:

  • 资源隔离与共享:允许多个应用或服务共享同一物理资源,同时保持独立性。
  • 灵活性:快速部署、迁移和扩展计算资源,适应业务需求变化。
  • 成本优化:减少硬件投入,降低运维复杂度。

虚拟化技术

常见技术包括 Hypervisor(虚拟机监视器),分为两类:

  • Type 1(裸金属型):直接运行在硬件上(如 VMware ESXi、Microsoft Hyper-V)。
  • Type 2(宿主机型):运行在操作系统之上(如 KVM、VirtualBox)。

容器与虚拟机的区别

  • 容器:轻量级,共享宿主操作系统内核,启动快(秒级),资源占用低。
  • 虚拟机:完整虚拟化硬件,独立操作系统,启动慢(分钟级),资源消耗高。

Docker 基本原理

Docker 是一种容器引擎,基于以下核心组件:

  • 镜像(Image):只读模板,包含运行环境和应用代码。
  • 容器运行时(Container):镜像的运行实例,具有可写层。
  • 镜像仓库(Registry):存储和分发镜像(如 Docker Hub、阿里云仓库)。

底层依赖两项关键技术:

  • cgroups:限制和管理资源(CPU、内存等)。
  • Namespaces:隔离进程、网络、文件系统等(共6种命名空间)。

Docker 基本操作

镜像管理
  • 查看镜像列表:

    bash 复制代码
    docker images
  • 拉取镜像:

    bash 复制代码
    docker pull nginx:latest
  • 删除镜像:

    bash 复制代码
    docker rmi nginx:latest
  • 导出/导入镜像:

    bash 复制代码
    docker save -o nginx.tar nginx:latest
    docker load -i nginx.tar
容器管理
  • 创建并启动容器:

    bash 复制代码
    docker run -itd --name my_container nginx:latest
  • 查看容器:

    bash 复制代码
    docker ps -a
  • 进入容器:

    bash 复制代码
    docker exec -it my_container /bin/bash
  • 删除容器:

    bash 复制代码
    docker rm -f my_container
  • 文件复制:

    bash 复制代码
    docker cp /host/file.txt my_container:/path/
容器与镜像转换
  • 导出容器为文件:

    bash 复制代码
    docker export my_container > my_container.tar
  • 导入为镜像:

    bash 复制代码
    cat my_container.tar | docker import - new_image:tag

扩展任务

  • Dockerfile 实践:学习编写 Dockerfile 构建自定义镜像。
  • 容器网络 :探索 Docker 网络模式(如 bridge、host)。
  • 数据持久化:使用卷(Volume)实现容器数据存储。
  • 编排工具:了解 Kubernetes 或 Docker Swarm 管理多容器应用。

通过以上内容,可系统掌握 Docker 的核心概念与操作,适用于开发、测试及生产环境部署。

相关推荐
todoitbo1 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
是枚小菜鸡儿吖8 小时前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
螺蛳粉 螺蛳粉11 小时前
第 02 篇:镜像分层与 containerd 2.x 实战:SystemdCgroup 与 pause 镜像配置踩坑(底座认知 02)
docker·云原生·容器·kubernetes·etcd·containerd·kube-apiserver
wefg111 小时前
【Docker】镜像相关指令
运维·docker·容器
java_logo12 小时前
Docker 部署 DPanel:轻松搭建轻量容器管理平台
运维·docker·容器·podman·容器管理·dpanel·轩辕镜像
死磕音视频12 小时前
Open WebUI 入门:用 Docker 装上本地对话界面并连接 Ollama
docker·ollama·本地大模型·open webui
分布式存储与RustFS13 小时前
CI 老被 Docker Hub 的 429 卡住,自建 Registry 把镜像搬进内网
运维·docker·开源·镜像仓库·对象存储·ci·rustfs
n1121213 小时前
Docker 容器时区错 8 小时:3 个坑
运维·docker·容器·故障排查·服务器运维·容器时区
慈云数据14 小时前
用 DSH 辅助部署一个网站监控平台:Uptime Kuma + Docker 实战
运维·docker·容器
螺蛳粉 螺蛳粉14 小时前
第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
docker·云原生·容器·kubernetes·etcd·运维排障·kube-apiserver