centos7和centos8的区别
网络管理
centos7
云主机:centos7使用network管理网络,NetworkManager默认是关闭的
自己安装的centos7mini版:两个都是开启的
# centos版本
[root@yang ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# 内核版本
[root@yang ~]# uname -r
3.10.0-1160.24.1.el7.x86_64
# 默认是启动的
systemctl status network
# 默认是关闭的
systemctl status NetworkManager
centos8
centos8没有network,使用NetworkManager管理网络
修改ip地址等操作之后,使用systemctl restart NetworkManager重启网络服务
# centos版本
[root@VM-0-13-centos ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
# 内核版本
[root@VM-0-13-centos ~]# uname -r
4.18.0-193.28.1.el8_2.x86_64
# centos8 没有network
[root@VM-0-13-centos ~]# systemctl status network
Unit network.service could not be found.
yum和dnf
centos7只有yum,centos8有yum和dnf
Dandified 像花花公子的
DNF(Dandified YUM) | YUM(Yellowdog Updater, Modified) |
---|---|
DNF 使用 libsolv 来解析依赖关系,由 SUSE 开发和维护 | YUM 使用公开的 API 来解析依赖关系 |
API 有完整的文档 | API 没有完整的文档 |
由 C、C++、Python 编写的 | 只用 Python 编写 |
DNF 目前在 Fedora、RHEL 8、CentOS 8、OEL 8 和 Mageia 6/7 中使用 | YUM 目前在 RHEL 6/7、CentOS 6/7、OEL 6/7 中使用 |
DNF 支持各种扩展 | Yum 只支持基于 Python 的扩展 |
API 有良好的文档,因此很容易创建新的功能 | 因为 API 没有正确的文档化,所以创建新功能非常困难 |
DNF 在同步存储库的元数据时,使用的内存较少 | 在同步存储库的元数据时,YUM 使用了过多的内存 |
DNF 使用满足性算法来解决依赖关系解析(它是用字典的方法来存储和检索包和依赖信息) | 由于使用公开 API 的原因,Yum 依赖性解析变得迟钝 |
从内存使用量和版本库元数据的依赖性解析来看,性能都不错 | 总的来说,在很多因素的影响下,表现不佳 |
DNF 更新:在 DNF 更新过程中,如果包中包含不相关的依赖,则不会更新 | YUM 将在没有验证的情况下更新软件包 |
如果启用的存储库没有响应,DNF 将跳过它,并继续使用可用的存储库处理事务 | 如果有存储库不可用,YUM 会立即停止 |
dnf update 和 dnf upgrade 是等价的 | 在 Yum 中则不同 |
安装包的依赖关系不更新 | Yum 为这种行为提供了一个选项 |
清理删除的包:当删除一个包时,DNF 会自动删除任何没有被用户明确安装的依赖包 | Yum 不会这样做 |
存储库缓存更新计划:默认情况下,系统启动后 10 分钟后,DNF 每小时会对配置的存储库检查一次更新。这个动作由系统定时器单元 dnf-makecache.timer 控制 | Yum 也会这样做 |
内核包不受 DNF 保护。不像 Yum,你可以删除所有的内核包,包括运行中的内核包 | Yum 不允许你删除运行中的内核 |
libsolv:用于解包和读取资源库。hawkey: 为 libsolv 提供简化的 C 和 Python API 库。librepo: 提供 C 和 Python(类似 libcURL)API 的库,用于下载 Linux 存储库元数据和软件包。libcomps: 是 yum.comps 库的替代品。它是用纯 C 语言编写的库,有 Python 2 和 Python 3 的绑定。 | Yum 不使用单独的库来执行这些功能 |
DNF 包含 29000 行代码 | Yum 包含 56000 行代码 |
DNF 由 Ales Kozumplik 开发 | YUM 由 Zdenek Pavlas、Jan Silhan 和团队成员开发 |
防火墙
centso7:firewalld底层使用iptables
centos8:nftables取代iptables
# 但是使用都是一样的
systemctl status firewalld
时间同步
centso7支持NTP和Chronyd
centos8只支持Chronyd
docker和podman
centos8 默认安装podman
区别:
1、docker需要以root用来启动守护进程(docker daemon)。
Podman可以以非特权用户启动容器,但是无法系统上执行任何需要 root 权限的命令。这包括映射主机上低于 1024 的任何特权端口号,以及默认的 HTTP 端口号 80。
3、docker cli 命令通过API跟 Docker Engine(引擎)交互告诉它我想创建一个container,然后docker Engine才会调用OCI container runtime(runc)来启动一个container。这代表container的process(进程)不会是Docker CLI的child process(子进程),而是Docker Engine的child process。
Podman是直接给OCI containner runtime(runc)进行交互来创建container的,所以container process直接是podman的child process。
4、因为docke有docker daemon,所以docker启动的容器支持--restart策略,但是podman不支持,如果在k8s中就不存在这个问题,我们可以设置pod的重启策略,在系统中我们可以采用编写systemd服务来完成自启动
5、docker需要使用root用户来创建容器,但是podman不需要