实践笔记:podman容器化实现centos-9-stream本地镜像站(可自动同步)

实践笔记:podman容器化实现centos-9-stream本地镜像站(可自动同步)


更新时间:20240626 Msg:修正了podman容器内自启动业务的方式

@写在前面:

为什么会有这个笔记,因为前两天我去朋友公司参观(去听吹牛 ),发现他们给实习生实操题目中有这么几个题目:
1、如何把ISO文件在本地建立镜像源
2、如何本地建立一个centos镜像站
3、如果在多个不同容器设备中同步数据

看了题目以后我有一种回到二十年前的感觉,
我就问我朋友,你为什么不把三个题目合并在一起出个题目:

题目:如何使用podman将centos的 ISO本地源部署成Web镜像站,然后实现所有podman容器数据更新同步化

三个知识点不是都考察了,而且利用效能更高,所以下面这个文章就是来实践的。

一、实践思路

1、单一podman容器实现:

A:进入容器内部配置:

1.1、podman容器是可以和宿主机目录映射的,所以先把ISO在宿主机上挂载成目录,然后把这个目录和podman容器进行映射
  • 准备一个podman基础镜像,这里选用centos-9-stream-cn
podman run -it 镜像id /bin/bash
1.1.1、 首先挂载ISO文件为目录
  • ISO文件挂载后,centos系统中显示为/dev/sr0 第二个ISO文件就是/dev/sr1
mkdir -p /ISO
# 挂载目录
mount /dev/sr0 /ISO
# 追加文字到配置文件中
cat >> /etc/fstab << 'EOF'
/dev/sr0 /ISO auto ro,nofail 0 0
EOF
# 使配置生效
source /etc/fstab 
1.1.2、 配置镜像站主目录
  • ISO文件挂载后其实是只读的,挂载以后的本地镜像源,还要实现镜像站作用(可以同步其他镜像源),那么就不能是只读的目录,所以先要配置Web Server主目录

    mkdir -p /www/wwwroot/mrroios
    
  • 使用软链接(相当于快捷方式)与ISO本地镜像目录/ISO进行挂载,centos-9-stream的ISO文件挂载以后默认生成的目录就一定是 /ISO/centos9stream
    ln -s 本挂载的目标 生成的文件

    ln -s  /ISO/centos9stream 9-stream
    

软链接实现的快捷方式

1.2、在podman容器中配置nginx,配置镜像站。
1.2.1、 编译nginx-1.27.0
mkdir -p /home/downloads
wget https://nginx.org/download/nginx-1.27.0.tar.gz
tar -xzvf nginx-1.27.0.tar.gz
cd nginx-1.27.0
 # 整理make清单,显示not found的就是需要补充安装的依赖,具体可以查log文件
./configure --prefix=/usr/nginx --with-http_ssl_module
  • 编译及安装
make && make install
1.2.2、 配置nginx.conf
mkdir -p /www/vhost
vim nginx.conf
  • 按下面的内容nginx.conf配置文档 保存
worker_processes  1;
error_log  /www/wwwroot/logs/error.log  info;
pid        /www/wwwroot/logs/nginx.pid;
events {
   
   
    worker_connections  1024;
}
http {
   
   
    default_type  application/octet-stream;
	gzip  on;

	server {
   
   
		listen 80 ;
		listen 443 ssl   ;
		server_name 域名 ;
		ssl_certificate /www/</
<think>嗯,用户问的是如何搭建一个个人服务器。首先,我需要明确用户的需求是什么。可能他们想自己托管网站、存储文件,或者运行一些私人应用。不过,用户可能没有明确说明他们的技术背景,所以回答需要兼顾不同层次的知识水平,既要有步骤指导,也要有注意事项,让新手也能理解。 接下来,我应该考虑搭建个人服务器的主要步骤。通常包括硬件选择、操作系统安装、网络配置、安全设置、服务部署和后期维护。每个步骤都需要详细说明,但也不能太复杂,否则用户可能会被吓到。比如,硬件部分可能需要解释不同需求对应的配置,但不需要深入讨论服务器级硬件的细节,毕竟个人使用可能用普通PC也可以。 然后,操作系统部分,常见的选项有Linux发行版如Ubuntu、CentOS,或者Windows Server。这里需要比较它们的优缺点,帮助用户选择适合他们的系统。对于新手来说,Ubuntu可能更友好,而CentOS适合更稳定的需求,Windows Server则适合习惯Windows环境的用户。 网络配置是关键部分,尤其是公网IP和端口转发。很多家庭网络没有固定公网IP,这时候可能需要提到DDNS服务,或者内网穿透工具如frp、ngrok。同时,安全设置非常重要,包括防火墙配置、SSH密钥登录、Fail2ban等,这些都是防止服务器被攻击的基本措施。 服务部署部分,用户可能想运行Web服务器、文件存储、媒体库或者游戏服务器。需要给出具体的软件推荐,比如Nginx/Apache,Nextcloud,Plex,Minecraft等,并简要说明安装步骤。同时,容器化技术如Docker可以简化部署,适合有一定经验的用户,但也要提到让新手知道有这种选择。 维护方面,定期更新系统和备份数据是必须强调的。用户可能忽略这些长期维护的重要性,导致安全漏洞或数据丢失。监控工具如Netdata可以帮他们实时了解服务器状态,这对非技术用户尤其有用。 另外,需要考虑用户可能遇到的常见问题,比如动态IP的问题,或者路由器不支持端口转发。这时候提供替代方案,比如云服务器或NAS设备,可以让他们根据实际情况调整方案。预算也是一个因素,有些用户可能不想花钱买硬件,云服务器的免费层级可能更适合他们。 最后,要提醒用户法律和安全问题,确保他们的使用符合当地法规,特别是涉及版权和隐私的内容。整体结构需要清晰,分步骤讲解,同时用列表和代码示例让内容更易读。可能还需要考虑用户是否需要可视化指导,比如推荐视频教程或社区支持,但用户没有明确要求,所以暂时放在附加建议里。 总结一下,回答需要全面覆盖硬件、系统、网络、安全、服务、维护,同时提供不同方案的选择,兼顾新手和进阶用户的需求,确保他们能根据自身情况搭建个人服务器。</think>以下是从零搭建个人服务器的系统指南,分步骤说明关键要点: 一、硬件准备(成本预算示例) $$C_{total} = C_{hw} + C_{power} + C_{network}$$ 1. 主机选择: - 低功耗方案:树莓派4B(4GB RAM/千兆网口/¥500) - 中端方案:Intel NUC11(i5/16GB/1TB SSD/¥3000) - 高性能方案:二手服务器(Dell R720/双E5-2670/64GB/¥4000) 2. 存储配置: - RAID1镜像模式:2×4TB HDD(数据安全优先) - SSD缓存加速:512GB NVMe + 8TB HDD(性能与容量平衡) 二、操作系统部署 1. Linux发行版选择: - Ubuntu Server LTS(长期支持版,apt包管理) - CentOS Stream(企业级稳定性,2024年后替代方案) - OpenMediaVault(NAS专用系统) 2. 安装流程示例: ```bash # 制作启动盘 dd if=ubuntu-22.04.iso of=/dev/sdX bs=4M status=progress # 磁盘分区方案 /boot 1GB ext4 / 50GB ext4 /data 剩余空间 btrfs(支持快照) ``` 三、网络配置核心步骤 1. 动态DNS设置(无公网IP时): - 使用Cloudflare API更新A记录 - 花生壳内网穿透方案(¥118/年基础版) 2. 端口转发规则示例: - HTTP/HTTPS:80→80,443→443 - SSH:外部2222→内部22(安全防护) - 私有服务:5000→5000(Jellyfin媒体服务器) 四、安全加固措施 1. SSH安全配置: ```bash Port 2222 PermitRootLogin no MaxAuthTries 3 PubkeyAuthentication yes ``` 2. 防火墙规则(UFW示例): ```bash sudo ufw allow 2222/tcp sudo ufw allow 80,443/tcp sudo ufw enable ``` 3. 入侵防御: - Fail2ban监控登录尝试 - ClamAV病毒扫描(每日自动更新) 五、基础服务部署 1. Web服务器: ```bash # Nginx安装 sudo apt install nginx sudo systemctl enable --now nginx ``` 2. 文件共享: - Samba:Windows兼容文件共享 - Nextcloud:私有云盘(Docker部署方案) 3. 自动化管理: - Cockpit(Web版服务器管理面板) - Ansible配置批量部署 六、维护与监控 1. 备份策略: - BorgBackup增量备份(每日3:00自动执行) - 加密同步至Backblaze B2($0.005/GB·月) 2. 监控系统: ```bash # Netdata实时监控安装 bash <(curl -Ss https://my-netdata.io/kickstart.sh) ``` 3. 更新策略: - 安全更新自动安装 - 主要版本升级前创建快照 七、可选扩展方案 1. 虚拟化扩展: - Proxmox VE(基于KVM的虚拟化平台) - LXC容器部署隔离环境 2. 边缘计算应用: - 部署HomeAssistant智能家居中枢 - 搭建Pi-hole广告过滤DNS(节省30%带宽) 硬件功耗参考值: - 树莓派:5W/年电费≈¥25 - NUC待机:15W/年≈¥75 - 服务器满载:200W/年≈¥1000 建议首次搭建选择旧笔记本电脑进行实验,熟悉基本流程后再投资专用设备。关键是要确保物理设备放置在通风良好的环境,避免过热导致硬件故障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aspnmy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值