Alpine-Linux:仅5MB的Linux
Alpine-Linux
简介
Alpine Linux 是一款独立的非商业性的通用 Linux 发行版,关注于安全性、简单性和资源效率。
Alpine Linux 围绕 musl libc 和 busybox 构建。这使得它比传统的 GNU/Linux 发行版更小,更节省资源。**一个容器只需不超过 8 MB
的空间。而在磁盘中的最小安装仅要大约 130 MB
的存储空间。**尽管体积很小,Apline 提供了完整的 Linux 环境,其存储库中还包含了大量的软件包备选。除此之外,Alpine 还对软件包进行了缩减和拆分,以使用户能够对安装内容有更精确的控制,进一步帮助减少安装体积并提高效率。
Alpine 的极简环境当然是优势,但是得考虑清楚你们是否真的需要这个优势,遇到问题有没有解决的能力。
Alipne Linux 由于使用了 musl libc,如果是那种专门在 CI 服务器的宿主机系统上构建应用再打包为镜像的流程(这是一种很常见的模式),就必须使用交叉编译的方式构建应用。需要交叉编译就不可避免的会遇到各种麻烦和风险。
还有一个较大的问题是依赖过少,比如在安装 php 的时候他不会自带 php-mysqli 等插件(实际上什么插件都不会自动安装)。
镜像获取/安装
docker
alpine Linux 主要用在 docker 容器中。直接 pull alpine 即可获取。大小仅5MB,非常推荐作为一些大规模启动的镜像的基础镜像。
docker pull alpine
虚拟机
镜像下载地址:https://dl-cdn.alpinelinux.org/alpine/v3.16/releases/x86_64/alpine-virt-3.16.2-x86_64.iso
因为占用小的缘故,把它拿去当作虚拟机做一些测试也非常合适。
安装
这里以 esxi 为例,创建新的虚拟机,名称和兼容性以实际需求为准,操作系统选 Linux,系统版本选 其他 Linux(64 位)。
CPU、内存选项依照虚拟机实际需求而定,CD/DVD 驱动器 选择 esxi 已经上传至服务器上的 ISO 文件。
系统版本可以随便选。虚拟机的配置也可以依照后续需求再去修改,所以可以随意配置,能运行就行。
添加虚拟机后启动即可,初始状态用户名输入 root
即可登入到系统里。
登入到系统后,输入 setup-alpine
,开始系统的初始化和安装。安装过程非常简单快捷,大部分参数没有特殊需求的情况下可以直接使用默认配置(直接回车)
,只有以下几个注意项。
- Enter mirror numer (1-73) or URL to add:可以在这里选择源,也可以直接回车后面再去配置。
- Allow root ssh login:默认 ssh 不允许 root 登入,可以输入 yes 来允许 root 登入。
- Whic disk(s) would you like to use:他会列出你所有的硬盘,你需要选择你的硬盘。
- How would you like to use it:是否写入磁盘,选 sys。
- WARNING Erase the above disk(s) and continue:输入 y 确定擦除磁盘并继续。
待进度条加载完毕后即完成安装。
加粗项(3、4、5)是必选的,这样才可以将系统写入磁盘,不写入磁盘会导致重启虚拟机将导致配置失效和弹出 ISO 文件后无法启动虚拟机。
apk 包管理工具
alpine 提供了非常好用的apk软件包管理工具,通过apk –help命令查看完整的包管理命令。软件包源地址路径储存在 /etc/apk/repositories
文件里。该文件首行默认为 /media/cdrom/apks,一般情况下都会删除首行。如果前面安装系统时选择的源是默认源,可以使用一下命令改为清华大学源。
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
傻瓜式配置,直接运行以下命令即可:
echo 'http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.16/main
http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.16/community' > /etc/apk/repositories
常用命令
apk update:新本地仓库索引
apk add <package>:添加指定包
apk add --no-cache <package>:添加指定包,并且不使用本地cache进行安装,避免产生无用的缓存安装文件
apk del <package>:删除指定包,会连同安装的其他依赖一同删除
apk list:包的列表信息
openRC 服务管理
alpine linux 采用openrc来管理init系统。通过 apk add openrc
来安装 openrc。
启动/停止/重启服务
rc-service 用法与 service 命令相同。
- rc-service <name> start:启动服务
- rc-service <name> stop:停止服务
- rc-service <name> restart:重启服务
查看服务
- rc-status:查看启动的服务
- rc-status -a:查看所有运行级别的服务
- rc-status -s:查看服务列表
启动项
- rc-update add <name> [default | boot]:将一个服务设置为开机自启,如果不懂 default 和 boot 的是什么那就别加这个参数。
- rc-update del <name> :将一个服务从自启动中删除。
技术分享
欢迎各位小伙伴来此交流信息安全与寻找各种资源。
击链接加入QQ频道【信息安全】:https://pd.qq.com/s/71e776wtz
Alpine-Linux:仅5MB的Linux相关推荐
- Alpine linux 小内存版,Alpine Linux系统-Alpine Linux系统【轻量级Linux】下载v3.11.0 最新版-西西软件下载...
Alpine Linux系统[轻量级Linux],Alpine Linux其实就是一个清凉版的Linux系统,通过牺牲一些不常用的功能和特性来达到更加轻巧的体积以及更快的响应速度.Alpine Lin ...
- 精简linux操作系统,Tiny Core Linux—仅10多MB的精简Linux 操作系统发行版
Tiny Core Linux是一款很简约的桌面Linux,体积小且可高度可扩展,基于Linux 3.x内核.Busybox.Tiny X.FLTK图形用户界面.JWM窗口管理器.像其他操作系统最少也 ...
- linux中as命令,Linux as 命令 command not found as 命令详解 as 命令未找到 as 命令安装 - CommandNotFound ⚡️ 坑否...
显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil as 命令是汇编语言编译器 as 命令安 ...
- linux启动时间极限优化,Linux启动时间的极限优化
在上次完成嵌入式应用的Linux裁减后,Linux的启动时间仍需要7s左右,虽然勉强可以接受,但仍然没有达到我个人所追求的目标--2s以内.况且,在实际的商用环境中,设备可靠性的要求可是"5 ...
- linux 安装删除命令,Linux如何使用命令行卸载安装包
导读 严格地说,Linux是内核.Linux发行版由Linux内核.安装脚本.shell.编译器.桌面和其他组件组成.因此,卸载包或软件的Linux命令取决于Linux发行版的名称和类型.本文说明如何 ...
- linux 档案类型s,Linux学习(四)档案与目录管理
1. 目录与路径 1.1 相对路径与绝对路径 1.2 目录的相关操作: cd, pwd, mkdir, rmdir 1.3 关于执行文件路径的变量: $PATH 2. 档案与目录管理 2.1 档案与目 ...
- linux内核网络协议栈--linux bridge(十九)
1 . 前言 本文是参考附录上的资料整理而成,以帮助读者更好的理解kernel中brdige 模块代码. 2. 网桥的原理 2.1 桥接的概念 简单来说,桥接就是把一台机器上的若干个网络接口" ...
- 如何查linux系统安装时间查询,Linux系统怎样查询当前的系统时间
在Linux上进行定时任务时,一定要注意时差问题,用美国的服务器就不能按中国的时间来对吧.下面是学习啦小编为大家整理的Linux查询当前系统时间的命令,希望大家能够从中有所收获! Linux查询当前系 ...
- linux++tar打包目录,linux中tar命令打包目录与排除目录打包linux操作系统 -电脑资料...
本文章来给各位朋友详细介绍关于linux中tar命令打包目录与排除目录打包有需要了解tar命令的使用方法的朋友可进行参考参考, 打包压缩目录很简单如下代码如下复制代码 tar -czf small.t ...
最新文章
- 本地区间管理 oracle,Oracle:本地表空间管理,字典表空间管理
- toad导入数据_利用TOAD实现EXCEL数据在oracle的导入导出
- memset()函数用法
- python写程序注意事项(很重要)
- 引用js/css时,加入时间戳解决浏览器缓存问题
- Carlosfu技术系列文章总目录
- docker和数据卷问题探究
- [我总结]8月第二周总结
- 能源项目xml文件标签释义--DefaultAdvisorAutoProxyCreator
- shadow Dom(shadowRoot) 访问
- mac docker nginx 配置
- 【车流量计数】基于matlab光流场交通汽车检测跟踪【含Matlab源码 503期】
- 不要在考虑需求之前更多的在意你的职业镀金
- 软件设计原则之单一职责原则
- USB PD快充协议
- 可清空所选时间的jquery.datetimepicker时间插件
- Python项目四:新闻聚合
- TCGA差异表达分析|2022.5.1更新
- 关于MII、RMII、GMII、RGMII、PHY、网络变压器、RJ45的硬件总结
- java EE开发之Servlet第八课:MVC模式 (基本理解)