0%

Alpine入门篇

Alpine简介

Alpine Linux是基于musl libc和 busybox 的面向安全的轻量级Linux发行版。
Alpine的VM镜像大小113M,Alpine的Docker镜像大小只有2M!

Alpine由非商业组织维护的,支持广泛场景的Linux发行版,它特别为资深/重度Linux用户而优化,关注安全,性能和资源效能。
Alpine 镜像可以适用于更多常用场景,并且是一个优秀的可以适用于生产的基础系统/环境。

第一次接触alpine,是使用它跑单测。gitlab设置代码提交后触发单测,而这个单测,可以使用alpine来进行。但是因为时区问题,跑出的单测结果和预期不同。因此,本文以修改Alpine时区为引子,简单学习了解一下Alpine。

PS:与Alpine相似的一个小系统CirrOS的VM镜像大小只有12M,CirrOS的Docker镜像大小只有10M。

Alpine包管理

Alpine采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。

在保持瘦身的同时,Alpine还提供了自己的包管理工具apk。参考文档:

常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 更新最新本地镜像源
apk update

# 升级软件
apk upgrade

# 指定升级部分软件包
apk add --upgrade xxx

# 安装包
apk add xxx

# 搜索包,支持正则
apk search xxx
apk search -v 'xx*'
apk search -v -d 'xxx'

# 查看包详细信息
apk info -a xxx

# 查看包列表
apk show

# 卸载并删除包
apk del xxx

使用apk add命令时,往往下载缓慢或者下载失败。参考清华大学Alpine镜像使用帮助,修改镜像源。

1
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories

修改时区

Alpine修改时区,主要参考修改使用Alpine Linux的Docker容器的时区

1、下载apline镜像

1
docker pull alpine:3.7.3

2、启动apline容器&登录进入容器

1
2
docker run -d --name alpine_timezone alpine:3.7.3 sleep 3000
docker exec -it alpine_timezone /bin/sh

3、安装timezone

1
2
apk add -U tzdata
ls /usr/share/zoneinfo

4、拷贝需要的时区文件到localtime

1
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

5、验证时区

1
date

6、精简镜像

1
apk del tzdata

7、保存镜像

1
2
3
4
exit
docker commit alpine_timezone voidking/alpine:v1.0
docker login
docker push

以上,完成了Alpine镜像时区的修改。

此外,还有一种更简单的方法,在启动Alpine容器时映射宿主机的时区文件。

1
docker run --name alpine -it -d -v /etc/localtime:/etc/localtime alpine:3.7.3

或者更简单一些,使用Dockerfile构建新镜像,把宿主机/etc/localtime拷贝到alpine镜像中。

  • 本文作者: 好好学习的郝
  • 本文链接: https://www.voidking.com/dev-alpine-start/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!源站会及时更新知识点及修正错误,阅读体验也更好。欢迎分享,欢迎收藏~