仅 5M 的操作系统镜像 alpine,了解一下嘞?

2022-05-29 11:10:53 浏览数 (1)

文章目录
  • alpine 简介
  • 基本操作
    • 更新最新镜像源列表:apk update
    • 搜索软件包:apk search
    • 安装软件包:apk add
    • 列出已安装的软件包:apk info
    • 升级软件版本:apk upgrade
  • 基础alpine镜像

alpine 简介

Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过 https://pkgs.alpinelinux.org/packages 网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件。

目前 Docker 官方已开始推荐使用 Alpine 替代之前的 Ubuntu 做为基础镜像环境。这样会带来多个好处。包括镜像下载速度加快,镜像安全性提高,主机之间的切换更方便,占用更少磁盘空间等。

  • 小巧:基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB;
  • 安全:面向安全的轻量发行版;
  • 简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。
  • 适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像。

基本操作

Alpine使用apk进行包管理,下面介绍一些常用的包管理命令:

更新最新镜像源列表:apk update

代码语言:javascript复制
apk update

搜索软件包:apk search

代码语言:javascript复制
apk search                # 查找所以可用软件包
apk search -v             # 查找所以可用软件包及其描述内容
apk search -v 'acf*'      # 通过软件包名称查找软件包
apk search -v -d 'docker' # 通过描述文件查找特定的软件包

安装软件包:apk add

代码语言:javascript复制
apk add openssh                  # 安装一个软件
apk add openssh openntp vim      # 安装多个软件
apk add --no-cache mysql-client  # 不使用本地镜像源缓存,相当于先执行update,再执行add

列出已安装的软件包:apk info

代码语言:javascript复制
apk info               # 列出所有已安装的软件包
apk info -a zlib       # 显示完整的软件包信息
apk info --who-owns /sbin/lbu # 显示指定文件属于的包

升级软件版本:apk upgrade

代码语言:javascript复制
apk upgrade                       # 升级所有软件
apk upgrade openssh               # 升级指定软件
apk upgrade openssh openntp vim   # 升级多个软件
apk add --upgrade busybox         # 指定升级部分软件包
2.6. 删除软件包:apk del
apk del openssh  # 删除一个软件

差不多也就这些,其他的用 Ubuntu 的时候都不见得要用,要用的时候再查。


基础alpine镜像

代码语言:javascript复制
FROM alpine:3.9.2

# 更新最新镜像源列表
RUN apk update

# 设置Docker 时间为上海时区
RUN apk add -U tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/shanghai" >> /etc/timezone

# 依次安装命令:curl、scp、telnet
RUN apk -U add curl
RUN apk -U add openssh-client
RUN apk -U add busybox-extras

# 这里添加top命令是为了方便本地测试,防止启动该基本镜像容器后自动运行停止
ENTRYPOINT ["top"]

0 人点赞