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 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等) 。镜像 不包含 任何动态数据 , 其内容在构建之后也不会被改变 。
Docker 镜像并非是像一个
ISO
那样的打包文件 , 镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说 , 由多层文件系统联合组成 。其被设计为分层存储的架构,镜像构建时,会一层层构建,前一层是后一层的基础 。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层 。分层存储的特征还使得镜像的复用、定制变的更为容易 。甚至可以用之前构建好的镜像作为基础层 , 然后进一步添加新的层,以定制自己所需的内容,构建新的镜像 。2.2,容器镜像(Image)和容器(Container)的关系,类似面向对象程序设计中的类和实例的关系 。可以把 Docker容器(Container) 看做是一个简易版的 Linux 环境(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序 。它可以被启动、开始、停止、 删除 。
推荐阅读
- Redis先操作数据库和先删除缓存, 一致性分析
- JK触发器与模12计数器
- 地铁跑酷怎么和好友一起玩
- 苹果13ProMax和一加10Pro对比-哪个好测评
- vivoS12Pro和华为nova9Pro哪个好-vivoS12Pro和华为nova9Pro参数对比
- 小米11ultra8g和12g有什么区别?
- 怎么看我和别人的共同好友是谁(怎么查找两人共同好友)
- 野火 STM32MP157 开发板内核和设备树的编译烧写
- C# 9.0 添加和增强的功能【基础篇】
- iPhone13pro和13promax怎么选_区别对比