Docker改造:从单机到简易IaaS平台

需积分: 9 5 下载量 143 浏览量 更新于2024-09-09 收藏 104KB PDF 举报
本文主要探讨了如何将Docker转化为一个虚拟机(VM)级别的容器化解决方案,以适应传统开发和运维团队的工作模式。作者裴彤以Centos 6.6和7.1作为实例,详细介绍了四个关键步骤: 1. **系统镜像制作与服务启动**: - 制作基础镜像,如Centos 6.6,并设置ENTRYPOINT和CMD,确保初始启动脚本/.init/entrypoint.sh和系统初始化器sbin/init3能正确运行。 - 遇到的问题包括服务如sshd和crond无法正常启动,通过nsenter技术实现进程渗透执行,并利用cgroups进行资源控制。 2. **网络配置**: - 关闭宿主机上的docker0网桥和NAT转发,创建专用的直连网桥。 - 宿主机通过veth接口与虚拟机建立连接,并在虚机内生成网络配置文件,确保IP地址和路由配置生效。对于更复杂的网络需求,可能使用OpenvSwitch进行扩展。 3. **存储管理**: - 将宿主机本地存储划分为逻辑卷(LV),格式化并挂载到容器中,支持系统盘、代码盘和数据盘的隔离。 - 利用cgroups对LV卷进行IOPS和BPS限制,但在Centos 6.6上效果不佳,但在Centos 7.1有更好的性能。 4. **性能监控与优化**: - 收集容器的Cgroup和/proc信息,处理web展示问题,确保资源监控准确。 - 提供替代工具,如sac-mem和sac-cpu,以达到80%的虚拟机功能,关注用户实际需求。 - 注意处理电源操作(如reboot和shutdown)在容器中的限制,以及根据应用类型分组处理。 完成这些步骤后,作者构建了一个简易的基础设施即服务(IaaS)平台: - 通过API提供易用的虚机创建功能,用户可以根据内存、CPU、硬盘和操作系统环境定制虚拟机。 - 实现虚机生命周期管理,包括系统盘快照和重置功能,基于Docker镜像机制。 - 该平台由一个人在三个月内独立开发完成,没有采用分布式存储,而是利用基础的Docker功能构建。 如果考虑扩展,可能会考虑集成KVM或OpenStack等更全面的虚拟化技术,以满足更高的性能和可靠性需求。整个过程体现了将Docker灵活地改造为满足传统虚拟机工作负载的实践方法。
2023-10-29 上传