Alpine修改时区

Alpine简介

Alpine Linux是基于musl libc和busybox的面向安全的轻量级Linux发行版。Alpine镜像113M,不稀奇,毕竟CirrOS镜像只有12M。但是Alpine的Docker镜像大小只有5M!而CirrOS的Docker镜像大小为10M。

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

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

Alpine包管理

Alpine采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine还提供了自己的包管理工具apk。更多参考Alpine Linux package managementAlpine Linux下的包管理工具

常用命令:

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

修改时区

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

1、下载镜像
docker pull alpine

2、启动镜像
docker run --name alpine_timezone -it alpine:latest /bin/sh

3、安装timezone

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

4、拷贝需要的时区文件到localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

5、验证时区
date

6、精简镜像
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:lastest

0%