文章目录
- 一、背景
- 二、下载 RockyLinux9 镜像
- 三、环境初始化
- 四、安装 Docker 环境
一、背景
这里讲一个小故事:
我们都知道Linux 内核是由芬兰计算机科学家林纳斯·托瓦兹 (Linus Torvalds) 于 1991 年首次开发的,随后有一个非常重要的公司RetHat成立,利用Linux内核和它的一些软件生态发布了我们的RetHat版本。
作为一台服务器,最重要的就是稳定性,不能动不动就更新,为了保证Rethat代码的稳定性,它推出了一个叫Fedora的桌面版(免费开源),当我们的红帽开发了新的功能后,先会发布给Fedora进行测试(因为是桌面版,像win一样有很多人会用),没有问题后再被下发给Redhat企业版供给各个公司去使用。
在这种背景下,一个社区就成立了,就是我们所熟知的CentOS。
RedHat是一个服务收费、代码开源的产品,虽然在今天的条件下获取完整的代码比较困难,但是依然可以通过订阅制获取它的完整的代码部分,所以CentOS社区在拿到源码之后去修修改改、移除一些授权的软件、加一些新的补充协议优化等得到了我们一个新的发行版CentOS。
CentOS大家都知道吧,这个家伙在我们的国内生态中普及度非常之高,国内10台服务器基本就是7台CentOS在服役,Redhat看到这么一个竞品后并没有坐以待毙,而是一锅端将这个社区给收购了。
就在今年CentOS系统已经停止服役,都在陆陆续续往别的系统进行迁移,为什么会这样呢?
这是因为红帽公司将CentOS社区收购了,CentOS变成了一个项目,此时CentOS位于Rethat企业版的下游,越下游理论上越稳定,结果CentOS还免费,这不自己家东西和自己家东西打架了吗?
所以CentOS项目就被关闭了,转而推出了一个新的项目 CentOS Stream,当我们有新的代码发布给Fedora,Fedora测试完成没有问题之后发布给CentOS Stream项目,Stream项目测试发现完全没有问题以后最终才发布到我们的Rethat企业版,此时CentOS Stream反而成了Rethat企业版的上游、成了为其提供测试助力的东西。
完美,这不就解决了自己打架的问题了吗?当然这个完美是对于红帽公司而言的,对于我们来说CentOS Stream就有了一个概念叫滚动版 ,这就好比我们家里的Windows,天天更新、还整个小弹窗提示我们更新了几个几个组件请位于什么什么时候重启。
这还是个人用的电脑,这要是企业的服务器放在那里一工作需要好几年,有一天弹出一个更新告诉你需要重启一下,心态不就崩掉了 😃。
所以CentOS Stream其实就不适合真正的商用化,现在就有一些公司会把CentOS Stream项目拿过来,把它的滚动版自己维护成所谓的稳定版,就不更新了,出问题自己维护,比如Meta公司(Facebook)。
但这有一个前提,需要你公司用的服务器数量足够多,不然这是没有意义的事情,这不是小公司玩的转的。
有需求就会有产生,这就是我们的Rocky Linux诞生的原因,Rocky Linux和之前的CentOS一样依然对Redhat发布的源代码进行修修改改,就等同于我们之前理解的CentOS。
Rocky Linux 是由 CentOS 联合创始人 Gregory Kurtzer 发起的项目,CentOS原班人马打造。
它的名字来源于 CentOS 项目的另一位联合创始人 Rocky McGaugh,以此纪念他的贡献。
并且他们明确声明了要采取一定的手段,避免重蹈CentOS的覆辙。
目前,基本上你能见到的所有云计算公司都在去跟投Rocky Linux,也在各自的云环境中去支持。
不过大家也不用担心,因为它本质上还是Linux操作系统,还是redhat系列,所以不会有学习成本的啦 😃 。
总结
Rocky Linux 是一款开源的企业级 Linux 操作系统,旨在为用户提供一个功能强大、稳定可靠的企业级操作环境。
它是 CentOS 项目停止稳定版本支持后(即 CentOS Stream 转型为滚动版本更新模型)诞生的替代品之一,由 Rocky Enterprise Software Foundation (RESF) 开发和维护。
在 CentOS Stream 宣布成为一个滚动发布的操作系统后,许多企业和用户需要一个稳定、长生命周期支持的 Linux 发行版。
Rocky Linux 的目标是提供 CentOS 的直接替代品,以满足企业和开发者的需求。
Rocky Linux 当前稳定版本基于 RHEL 的最新发布。
二、下载 RockyLinux9 镜像
官方下载地址:https://rockylinux.org/download
阿里云镜像下载地址:https://mirrors.aliyun.com/rockylinux/9/isos/x86_64/
三、环境初始化
网卡配置,设置双网卡,一般数字小的是第一块网卡,固定IP可以参考这篇:https://shenyang.blog.csdn.net/article/details/144168667
cat /etc/NetworkManager/system-connections/ens160.nmconnection
输出如下内容,将自动改为手动,这块网卡是仅主机模式,并添加了路由器地址(网关)
[ipv4]
method=manual
address1=192.168.204.130/24,192.168.204.150
dns=114.114.114.114;8.8.8.8
查看另一个NAT模式的网卡
cat /etc/NetworkManager/system-connections/ens192.nmconnection
如下,将其禁用
[connection]
autoconnect=false
调用 nmcli
重启设备和连接配置
# 禁用网络设备ens192
nmcli d d ens192 # nmcli device disconnect ens192
# 重新连接网络设备ens160
nmcli d r ens160 # nmcli device reapply ens160
# 重新加载连接配置
nmcli c r ens160 # nmcli connection reload ens160
Rocky 系统软件源更换,替换为国内阿里云源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/Rocky-*.repo
dnf makecache # 和yum是一样的
yum -y update # 更新系统软件(非必要)
防火墙修改 firewalld 为 iptables
systemctl stop firewalld
systemctl disable firewalld
yum -y install iptables-services
systemctl start iptables
iptables -F
systemctl enable iptables
service iptables save
禁用 selinux,分为临时禁用和永久禁用
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
grubby --update-kernel ALL --args selinux=0
# 查看是否禁用, grubby --info DEFAULT
# 回滚内核层禁用操作, grubby --update-kernel ALL --remove-args selinux
设置时区
timedatectl set-timezone Asia/Shanghai
保存系统快照为 JustInstall,保存系统快照为 JustInstall,保存系统快照为 JustInstall,重要的事情说三遍
关闭 swap 分区
swapoff -a
sed -i 's:/dev/mapper/rl-swap:#/dev/mapper/rl-swap:g' /etc/fstab
四、安装 Docker 环境
加载 bridge 网桥插件,安装这些软件要在禁用NAT网络设备前执行
yum install -y epel-release
yum install -y bridge-utils
# 所有经过网桥的流量都必须要被防火墙所回调
modprobe br_netfilter
echo 'br_netfilter' >> /etc/modules-load.d/bridge.conf
echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
添加 docker-ce
yum源,中科大(ustc)
sudo dnf config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
cd /etc/yum.repos.d
切换中科大yum源
sed -e 's|download.docker.com|mirrors.ustc.edu.cn/docker-ce|g' docker-ce.repo > docker-ce-ustc.repo
mv docker-ce.repo docker-ce.repo.back # 备份,防止有一天中科大的源不能用了
安装 docker-ce
yum -y install docker-ce
配置 daemon
,指定当前的IPC默认是允许共享的,因为19.03
版本之后被默认关闭了
cat > /etc/docker/daemon.json <<EOF
{
"default-ipc-mode": "shareable",
"data-root": "/data/docker",
"exec-opts": [
"native.cgroupdriver=systemd"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "100"
},
"insecure-registries": [
"hub.harbor.com"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
重启docker服务
systemctl daemon-reload && systemctl restart docker && systemctl enable docker