一、Docker 原理docker是什么?【Docker、Podman 容器"扫盲"】Docker 是完整的一套容器管理系统,所以想要搞懂 Docker 的概念,我们必须先从容器开始说
起 。什么是容器?
- 容器是用来装东西的(类似运行的启动盘),linux 里面的容器是用来装应用的;
- 容器就是将软件打包成标准化单元,以用于开发、交付和部署;
- 容器技术已经成为应用程序封装和交付的核心技术;
- Cgroups (Control Groups) — 资源管理
- SELinux — 安全 (是针对于文件系统,文件的管理措施)
- NameSpace — 命名空间是指可以对系统资源空间进行分割隔离的技术,例如:创建一个虚拟机,在虚拟机里的所有操
作,都不会对真实机造成影响 。命名空间分为六大类,可以从各个方面来对系统资源空间进行隔离;
- UTS:主机名命名空间,作用:分割主机名,即在容器内修改主机名,不会对宿主机的系统造成影响,实现主机名的隔离;
- NETWORK:网络命名空间,作用:分割网络,即容器内的网络配置和宿主机相互之间不受干扰的;例如在真实机器上的网卡名为eth0,IP地址为192.168.1.10/24;而在容器内的网卡名可以为ens33,ip地址为10.10.10.10/24;
- MOUNT:挂载命名空间,作用:隔离文件系统,在容器内挂载的光盘或nfs共享目录,宿主机是无法看到里面的内
容的;例如:在linux系统上,创建一个虚拟机,在真机的/var/lib/ftp中挂载了一个光盘文件,但是在虚拟机的/var/lib/ftp中是没有光盘内容的,这就是MOUNT隔离; - USER:用户命名空间,作用:隔离用户,即容器内创建的用户不能用于登录宿主机,真机机里创建的用户也不能
作用于容器; - PID:进程命名空间,作用:为了防止容器和宿主机中的进程冲突;例如:在真实机中,有一个服务: nfs,PID为2250;在容器内,也有一个服务: chrony,PID为2250;真实机中用户,杀死(kill) PID号为2250的进程时,并不会对容器内的进程2250产生影响;而容器内的用户,杀死(kill) PID号为2250的进程时,也并不会对真实机内的进程2250产生影响;
- IPC:信号向量命名空间,作用:通常和PID一起使用;用户杀死一个进程时,实际上是向进程发送一个信号(IPC),进程接收到这个信号后会执行对应的操作;
- 优点:相比于传统的虚拟化技术,容器更加简洁高效,传统虚拟机需要给每个 VM 安装操作系统,容器使用的共享公共库和程序
- 缺点:容器的隔离性没有虚拟机强共用Linux内核,安全性有先天缺陷.
- docker 与传统虚拟化的对比:虚拟化:例如:虚拟机的使用,每一个虚拟机都要安装独立的操作系统;将一台服务器转变为多台服务器的物理硬件的抽象 。系统管理程序允许多个VM在单台计算机上运行 。每个VM包含操作系统,应用程序,必要的二进制文件和库的完整副本-占用数十GB 。VM也可能启动缓慢 。容器:不需要安装独立的操作系统,只有一个Docker进程,和宿主机共享操作系统;容器没有操作系统,启动容器就跟开启一个进程一样,简单高效;是应用程序层的抽象,将代码和依赖项打包在一起 。多个容器可以在同一台计算机上运行,?并与其他容器共享OS内核,每个容器在用户空间中作为隔离的进程运行 。容器占用的空间少于VM(容器映像的大小通常为几十MB),可以处理更多的应用程序,并且需要的VM和操作系统更少 。
- 运行区别( 容器的高效性):启动虚拟机中的应用程序,需要先启动虚拟机的操作系统,然后再启动应用程序;启动容器内的应用程序,直接启动应用程序即可;
推荐阅读
- JAVA实现对阿里云DNS的解析管理
- Win11新预览版22533推送:亮度、音量控制条变样了
- 把男人引向成功的10种女人
- 仅需3分钟,加快群晖、威联通docker镜像拉取速度
- 教师节怎么回复学生的祝福
- 情色9戒条 女人非知不可
- 盘点十大装逼男
- 男女容易争吵的六个场合
- 本科生|985有种说法:金本科、银硕士、铜博士,硕博不如本校本科生?
- 鹦鹉|职场人,需要“重新构建角色身份”,让你摆脱迷茫、浑噩的状态