最小系统环境Alipine linux-内存占用只有3.7M,微服务的福音。

2024-03-07 09:24:15 36点赞 290收藏 15评论

引言

在当前的数字化浪潮中,特价VPS(虚拟专用服务器)已成为众多用户追求高性价比的首选。尤其是那些采用Llxc、Openvz等共享技术的64M~128M服务器,更是受到了节点用户的青睐(年付便宜)。然而,这些服务器往往预装了ubuntu或centos等操作系统,即便经过精简,系统开机仍会占用46M以上的内存。为了解决这个问题,本文将向您展示如何通过DD脚本重新为这些节点用户安装系统,并引入docker技术,为您的服务器带来前所未有的自由度和灵活性。

本文将重点介绍OsMutation——一款功能强大的一键重装系统脚本。它支持OpenVZ和LXC虚拟化技术,并兼容Debian、CentOS、Alpine等多种操作系统之间的转换。但请注意,本文的内容主要适用于LXC(包括Openvz7等虚拟化技术),并不适用于Openvz6、KVM和Xen。

在继续之前,请务必牢记:数据无价,更换系统将会清除所有数据。因此,强烈建议您在操作前进行数据备份。

备注:数据无价,更换系统会抹除数据,请自行备份。

项目开源地址:https://github.com/LloydAsp/OsMutation

一、通过DD脚本安装alpin

1、通过SSH连接到您的服务器,并执行以下命令:

wget -qO OsMutation.sh https://raw.githubusercontent.com/LloydAsp/OsMutation/main/OsMutation.sh && chmod u+x OsMutation.sh && ./OsMutation.sh

或者

curl -so OsMutation.sh https://raw.githubusercontent.com/LloydAsp/OsMutation/main/OsMutation.sh && chmod u+x OsMutation.sh && ./OsMutation.sh

最小系统环境Alipine linux-内存占用只有3.7M,微服务的福音。

推荐使用alpine ,装完后比较小巧,内存不足4M

最小系统环境Alipine linux-内存占用只有3.7M,微服务的福音。

更换完就妥妥的了,是不是很简单(有些需要root重启,密码不变)

如下图,系统占用内存只有3.7M

最小系统环境Alipine linux-内存占用只有3.7M,微服务的福音。

2、为什么这么小?

答案很简单,就是这个系统啥都没有,系统采用最小化原则,省略了许多传统linux发行版中默认的软件包和工具,比如常用的没有apt(或yum)和systemd,而是使用代替工具busbox(busybox,包含300多个工具集)来处理基本任务,并且删除了一些不影响系统运行的补助资源文件,只用musl代替glibc,(不依赖C程序编译就行)。所以大多数情况下,都是用于Docker的基础镜像。(alpine镜像最小能到4M),如你要安装任何东西,都要装那些臃肿的依赖。这个时候有些基础环境反而不如debian或者ubuntu。总之是仁者见人,智者倒地不起。

备注:冷知识点,JAVA、PHP是依赖glibc,因此如果拉Docker基础环境,一般是alpine-glibc

二、安装docker

在Alpine系统上部署Docker非常简单,默认包含docker源,所以更新一下即可。

1、执行更新并且安装

apk update && apk add docker

2、启动docker

service docker start

3、设置开机启动

rc-update add docker boot

最小系统环境Alipine linux-内存占用只有3.7M,微服务的福音。

补充:docker -v 查看docker版本。

以下是系统启动docker后内存占用情况。可以看到,系统内存在36M左右。

最小系统环境Alipine linux-内存占用只有3.7M,微服务的福音。

总结:

综上所述,通过OsMutation和Alpine Linux的结合,可以在一些特价VPS上实现一个既高效又轻量级的基础环境,为后续的Docker容器部署和管理提供了便利。其实原理就是通过相关顺序(文件夹的依赖关系)的替换容器里的文件(系统)实现,说白了就是复制如alpineLinux文件到你这个系统里然后重启。

有兴趣的同学可以看下:

Converts OpenVZ VPS to Alpine Linux

https://gist.github.com/trimsj/c1fefd650b5f49ceb8f3efc1b6a1404d

同时,我们也需要注意在使用Alpine时可能遇到的依赖问题,并做好相应的准备工作。

补充:如果环境在32M(某某祖传机),可以alpine+caddy+sqlie 实现简单的web服务搭建个博客什么的还是可以的。

Linux小环境平替软件知识拓展:

nginx=caddy # Caddy代替Nginx的一个正反代理软件,占用内存极小;

Mysql=sqlite #Sqlite代替Mysql的一个轻量级sql软件,小型关系行数据库;

展开 收起
15评论

  • 精彩
  • 最新
  • 在j1900的ikuai虚拟机里用着呢,装了2个Docker容器。其实alpine也有图形界面的。

    校验提示文案

    提交
  • 如果其它发行版最小化安装是毛坯房,那它就是个封了顶的框架。

    校验提示文案

    提交
    对,这个系统相当于就是一个毛坯房中的框架房

    校验提示文案

    提交
    收起所有回复
  • 真厉害

    校验提示文案

    提交
    哈哈,客气哈这

    校验提示文案

    提交
    收起所有回复
  • 我还以为看的技术网站

    校验提示文案

    提交
    。。。一个简单的技术分享,主要用于搭建底层框架,不是那些科学上网网站

    校验提示文案

    提交
    收起所有回复
  • 准备买特价vps,不知道买啥好

    校验提示文案

    提交
    vir特价

    校验提示文案

    提交
    收起所有回复
  • 这是虚拟机内再装docker吗?

    校验提示文案

    提交
    额,我这个是买的VPS,厂家的系统没优化,所以我自己换系统用。
    其实这个虚拟机也可以~再装Docker玩

    校验提示文案

    提交
    这个系统怎么安装klipper?

    校验提示文案

    提交
    收起所有回复
  • 所谓微服务内存问题应该是单个服务自身的内存占用吧?系统多200M和少200M差距不大,微服务是大型网络服务的技术,把一个大系统拆成一个个小服务方便更新部署,但还需要要有服务发现和各种API网关等中间件,而且还需要多台机做负载均衡,部署起来一点都不微,几十M内存的机器都不够启动....

    校验提示文案

    提交
  • 我的dns服务器和ddns就是部署在alpine上的

    校验提示文案

    提交
  • alpine dns解析有bug,公司又换回debian

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
290
扫一下,分享更方便,购买更轻松