文章目錄
- 一、背景
- 二、下載 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-*.repodnf 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