CentOS镜像定制个性化环境的常见方法
手动修改镜像是最基础的定制方式,适用于需要完全控制镜像内容的场景。
mount
、createrepo
、mkisofs
等工具。mount -o loop CentOS-Base.iso /mnt/iso
将镜像挂载到本地目录。/root/custom
),修改配置文件(如/etc/yum.repos.d/CentOS-Base.repo
更换镜像源、/etc/ssh/sshd_config
调整SSH设置)、添加自定义软件包或脚本(如放入/root/init.sh
)。mkisofs
命令重新生成可引导ISO,例如:mkisofs -o /root/Custom-CentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /root/custom
。Kickstart文件可实现无人值守安装,自动完成分区、软件包选择、网络配置等步骤。
ks.cfg
文件,定义安装参数(如语言lang en_US.UTF-8
、时区timezone Asia/Shanghai
、软件包组@base @development-tools
、分区clearpart --all --initlabel
、root密码rootpw --iscrypted $6$rounds=5000$yourpasswordhash
)。ks.cfg
放入ISO根目录,修改启动引导配置(如isolinux/isolinux.cfg
添加append initrd=initrd.img inst.ks=cdrom:/ks.cfg
),使安装程序自动读取配置。mkisofs
重新生成镜像,测试时通过虚拟机加载ISO,验证是否自动完成安装。Docker镜像适合快速部署轻量级、隔离的环境,尤其适用于应用层定制。
FROM centos:7
MAINTAINER YourName
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN yum update -y && yum install -y wget curl net-tools vim
COPY ./myapp /app
WORKDIR /app
EXPOSE 8080
CMD ["/bin/bash", "/app/start.sh"]
docker build -t my-centos-image .
构建镜像,通过docker run -d -p 8080:8080 --name my-container my-centos-image
运行容器,验证应用是否正常启动。Cubic是专为Ubuntu设计的镜像定制工具,但也支持CentOS,提供图形化界面简化操作。
sudo apt install cubic
。yum install -y httpd
)、修改配置文件(如/etc/httpd/conf/httpd.conf
调整Apache设置)、添加初始化脚本(如/root/init.sh
)。Packer是自动化镜像构建工具,支持多平台(包括CentOS),可与CI/CD流程集成。
provisioner
部分使用shell
脚本安装软件包、post-processor
部分生成ISO)。packer build template.json
命令,Packer会自动下载基础镜像、执行定制步骤、生成最终镜像。