Docker基础和常用命令一 , Docker 简介1.1 , 什么是 DockerDocker
使用 Google 公司推出的 Go 语言 进行开发实现 , 基于 Linux 内核的 cgroup , namespace , 以及 OverlayFS 类的 Union FS 等技术 , 对进程进行封装隔离 , 属于操作系统层面的虚拟化技术 。由于隔离的进程独立于宿主和其它的隔离的进程 , 因此也称其为容器 。Docker容器与虚拟机类似 , 但二者在原理上不同 。容器是将操作系统层虚拟化 , 虚拟机则是虚拟化硬件 , 因此容器更具有便携性、能更高效地利用服务器 。
专业名词 Docker
有两个意思:
- 代指整个 Docker 项目 。
- 代指 Docker 引擎 。
1.2 , Docker 与虚拟机的区别
- 传统虚拟机技术是虚拟出一套硬件后 , 在其上运行一个完整操作系统 , 在该系统上再运行所需应用进程 。
- Docker 容器内的应用进程直接运行于宿主的内核 , 容器内没有自己的内核 , 而且也没有进行硬件虚拟 。因此容器要比传统虚拟机更为轻便 。
文章插图
runc 是一个 Linux 命令行工具 , 用于根据 OCI容器运行时规范 创建和运行容器 。containerd 是一个守护程序 , 它管理容器生命周期 , 提供了在一个节点上执行容器和管理镜像的最小功能集 。1.4 , 为什么用 DockerDocker 作为一种新的虚拟化技术 , 跟传统的虚拟化技术相比具有众多的优势:
- 更高效的利用系统资源:不需要进行硬件虚拟以及运行完整操作系统等额外开销 , Docker 对系统资源的利用率更高 。
- 更快速的启动时间:Docker 容器应用直接运行于宿主内核 , 不需要启动完整的操作系统 , 所以启动时间可做到秒级的启动时间 。
- 一致的运行环境:Docker 镜像提供了除内核外完整的运行时环境 , 确保开发环境、测试环境、生产环境的一致性 。
- 持续交付和部署:开发人员可以通过 Dockerfile 来进行镜像构建 , 并结合持续集成(Continuous Integration) 系统进行集成测试 , 而运维人员则可以直接在生产环境中快速部署该镜像 , 甚至结合持续部署(Continuous Delivery/Deployment) 系统进行自动部署 。
- 更轻松的迁移:Docker 可以在很多平台上运行 , 无论是物理机、虚拟机、公有云、私有云 , 甚至是笔记本 , 其运行结果是一致的 。
- 更轻松的维护和扩展 。
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
Docker 镜像 是一个特殊的文件系统 , 除了提供容器运行时所需的程序、库、资源、配置等文件外 , 还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等) 。镜像 不包含 任何动态数据 , 其内容在构建之后也不会被改变 。
经验总结扩展阅读
- Redis先操作数据库和先删除缓存, 一致性分析
- JK触发器与模12计数器
- 充满希望和励志的短句 表达对人的期待的句子
- 充满希望和励志的短句 很暖很治愈的短句
- 地铁跑酷怎么和好友一起玩
- 苹果13ProMax和一加10Pro对比-哪个好测评
- vivoS12Pro和华为nova9Pro哪个好-vivoS12Pro和华为nova9Pro参数对比
- 小米11ultra8g和12g有什么区别?
- 万圣夜和万圣节有什么区别
- 野火 STM32MP157 开发板内核和设备树的编译烧写