制作CentOS镜像

制作CentOS镜像 2010-02-08 00:20:49
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://linux3zzy.blog.51cto.com/1244386/275290
制作CentOS镜像
#mkdir -pv iso/CentOS 先建立CentOS目录
#touch packages.txt 建立这个文件,用来存软件包的名字
#touch cperr.txt建立这个文件用来查看错误
#awk '/^Installing/{print $2}' install.log | sed 's/^[0-9]*://g' > packages.txt
生成packages.txt文件提取需要安装的软件包的名字
 
#mount /dev/cdrom /media/cdrom 挂载光盘
#vim myiso.sh 建立个shell脚本
脚本内容如下:
#!/bin
#myiso.sh
 
FILE='/root/packages.txt'
DEST_DIR='/root/iso/CentOS'
SRC_DIR='/media/cdrom/CentOS'
 
While  read LINE
do
   cp $SRC_DIR/$LINE.rpm  $DEST_DIR || echo "$LINE didn't cp..." >> cperr.txt
 done <$FILE
 
 
#bash -n myiso.sh 检查错误
#bash myiso.sh  执行myiso.sh
 
#cd /media/cdrom 进入光盘
cdrom]#cp -r .discinfo .treeinfo images/ isolinux repodata/ RPM-GPG-KEY-CentOS-5 EULA GPL /root/iso/
 
 这些文件中有些可以不cp,如images文件,有些文件必须cp,如isolinux(这个文件中包含了系统的内核信息和initrd.img和isolinux.cfg等重要文件),repodata
 
#cd 回到家目录
#du -sh ./iso/ 查看 ./iso/的大小
#cd iso/isolinux/
#cp anaconda-ks.cfg  iso/ks.cfg
#cd /iso/isolinux
编辑里面的isolinux.cfg文件
将第一行中加入ks=cdrom:/ks.cfg
 
#cd
#cp anaconda-ks.cfg   iso/ks.cfg
#vim ks.cfg    编辑ks.cfg文件
 
text   表示以字符界面安装
cdrom  表示系统使用光盘安装
keyboard us 选择键盘
lang en_US.UFT-8  选择语言
network --device eth0 --bootproto dhcp 设置网卡配置
rootpw  redhat 设置密码为redhat
authconfig --useshadow --enablemd5
firewall --disable  关闭防火墙
selinux --disable 关闭selinux
timezone --utc Asia/Shanghai  选择时区
bootloader   --location=mbr  --drivercorder=sda   启动系统
 
clearpart --all  --drivers=sda
part /boot --fstype ext3   --size 100   设置文件系统类型
part swap  --fstype swap   --size 1024
part /     --fstype ext3   --size 20000
 
reboot 重新启动
 
#cd iso/
iso]#createrepo -g  repodata/comps.xml ../iso/  检查依赖关系
如果没有createrepo,就先安装它的软件包
#cd
#mkisofs -o MyCentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -V -T iso/
用以上命令制作iso镜像
 
将镜像导入到真是机上,再建造一个虚拟机,用制作的iso镜像来安装CentOS。
 
### 如何使用 Docker 构建 CentOS 镜像 构建自定义的 CentOS 镜像是许多开发者常用的操作之一。以下是详细的说明: #### 使用官方 CentOS 镜像作为基础 如果不需要完全从头开始构建,可以直接基于官方的 CentOS 镜像进行扩展。这是最简单的方法。 ```bash FROM centos:7 RUN yum update -y && \ yum install -y epel-release && \ yum clean all CMD ["/bin/bash"] ``` 上述 `Dockerfile` 文件的内容解释如下: - `FROM centos:7`: 表示以官方 CentOS 7 的镜像为基础。 - `RUN yum update -y && yum install -y epel-release && yum clean all`: 更新系统并安装 EPEL 软件源[^1]。 - `CMD ["/bin/bash"]`: 设置容器启动后的默认命令为 `/bin/bash`。 构建镜像的命令如下: ```bash docker build -f ./Dockerfile -t mycentos:latest . ``` --- #### 自己构建 CentOS 镜像 当无法找到合适的官方镜像时,可以选择手动构建一个 CentOS 镜像。这通常涉及以下几个步骤: ##### 步骤一:准备 ISO 文件 下载 CentOS 官方发行版的 ISO 文件,并挂载到主机上。例如: ```bash mount -o loop /path/to/CentOS.iso /mnt/ ``` ##### 步骤二:创建根文件系统 (RootFS) 通过 YUM 工具生成最小化的 RootFS 文件夹。具体操作如下: ```bash yum --installroot=/rootfs install bash coreutils yum centos-release -y ``` 此命令会将必要的 RPM 包安装到指定的目标目录 `/rootfs` 中[^2]。 ##### 步骤三:打包成镜像 将生成的根文件系统压缩为 tarball 并导入至 Docker: ```bash tar -C /rootfs -c . | docker import - mycustomcentos:latest ``` 此时即可获得名为 `mycustomcentos:latest` 的自定义镜像。 --- #### 配置 SSH 远程访问功能 为了方便调试和管理容器,可以在镜像中集成 OpenSSH 服务。修改之前的 `Dockerfile` 文件内容如下: ```Dockerfile FROM centos:7 RUN yum update -y && \ yum install -y openssh-server && \ ssh-keygen -A && \ mkdir /var/run/sshd && \ sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \ echo "root:password" | chpasswd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"] ``` 其中的关键点在于: - 安装了 `openssh-server` 和其他依赖项。 - 修改了 SSH 配置允许 root 用户登录。 - 创建了一个简单的密码用于测试环境下的验证[^5]。 同样地,执行以下命令来完成镜像制作过程: ```bash docker build -f ./Dockerfile -t mysshdockercents:latest . ``` 运行该镜像实例化容器后可以通过标准工具(如 PuTTY 或者 SecureCRT)实现外部连接。 --- #### 总结注意事项 在实际开发过程中需要注意一些细节问题,比如网络代理设置、国内镜像源替换以及安全加固措施等。例如,在中国地区推荐更换为阿里云提供的仓库地址以便提高下载速度[^4]: ```bash sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ``` 此外还应考虑定期维护所使用的基线版本以防漏洞风险累积。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值