分享

Docker微容器之Alpine Linux 初体验

 丰收书屋 2019-06-10

0x00 前言

Alpine Linux是一个面向安全的轻型的Linux发行版,基于Alpine Linux的超小型Docker镜像,大小只有5MB,并且可以访问比其他基于BusyBox的镜像更完整的包存储库。Alpine Linux采用了 musl libcbusybox以减小系统的体积和运行时资源消耗,由于小巧、功能完备,非常适合用于作为容器的基础镜像。

Alpine Linux有以下特点:

  • 小巧

Alpine Linux是围绕musl libcbusybox构建的。这使得它比传统的GNU / Linux发行版更小,资源效率更高。容器不需要超过8 MB,最小的磁盘安装需要大约130 MB的存储空间。不仅可以获得完全成熟的Linux环境,还可以从存储库中获得大量的软件包。

二进制包被稀释和拆分,可以更好地控制安装的内容,从而使环境尽可能小而有效。

  • 简单

Alpine Linux是一个非常简单的发行版,它会尽量避免使用。它使用自己的包管理器名为apk,OpenRC init系统,提供了一个简单,清晰的Linux环境。然后,您可以添加项目所需的软件包,无论是构建iSCSI存储控制器,薄薄的邮件服务器容器,还是坚如磐石的嵌入式交换机,没有别的办法阻碍。

  • 安全

Alpine Linux的设计考虑了安全性。内核使用grsecurity / PaX的非官方端口进行修补,所有userland二进制文件都编译为具有堆栈粉碎保护的位置独立可执行文件(PIE)。这些主动安全功能可防止利用整个类的零日漏洞和其他漏洞。

0x01 镜像源

1.1 官方镜像源列表:http://rsync./alpine/MIRRORS.txt

1.2 国内镜像源:

1.3 配置软件源

# vi /etc/apk/repositories

# 添加自己要配置的源,然后保存退出
http://dl-cdn./alpine/
http://nl./alpine/
http://uk./alpine
http://dl-2./alpine/

0x02 apk软件包管理

介绍

alpine提供了比较好用的软件包管理工具apk,通过该命令可以下载、删除、升级软件等,但是apk和apt-get以及yum语法上还是有区别的。

命令

通过apk –help可以查看apk有哪些命令

这里写图片描述

命令用法–以nginx为例

2.1 升级当前软件包

  • apk update 更新本地镜像源
  • apk upgrade 升级所有已安装的软件包,一般包括内核
  • apk add –upgrade nginx 升级指定软件包

2.2 查询软件包的信息

  • apk info 列出已经安装的软件包
  • apk info nginx 显示软件包的信息
  • apk info -a nginx 显示软件包完整的信息

2.3 搜索软件包

  • apk search 查找所有可用软件包
  • apk search -v 所以可用软件包及其描述内容
  • apk search -v ‘nginx’ 通过软件包名称查找软件包
  • apk search -v -d ‘nginx’ 通过描述文件查找特定的软件包

2.4 安装软件包

  • apk add –no-cache nginx

2.5 卸载并删除软件包

  • apk del nginx

0x03 OpenRC init系统

在类Unix系统上,OpenRC是一个基于依赖的init。由于0.25 OpenRC包含openrc-init,它可以替换/ sbin/init,但init程序的默认提供程序是SysVinit for OpenRC。与Linux一样,OpenRC也可用于多个BSD系统。

OpenRC是TrueOS,Gentoo,Alpine Linux,Parabola GNU / Linux-libre,Artix Linux和其他类似unix 系统的默认初始化系统,而其他一些像Devuan则提供它作为选项

3.1 openrc的安装

apk add --no-cache openrc

3.2 rc-update - 不同运行级增加或者删除服务

rc-update add nginx 增加一个服务
rc-update del nginx 删除一个服务

3.3 rc-status - 运行级的状态管理

rc-status  查看默认运行级别的状态
rc-status -a 查看所有运行级别的状态

3.4 rc-service - 管理服务的状态

rc-service nginx start 启动一个服务
rc-service nginx stop  停止一个服务
rc-service nginx restart  重启一个服务

3.5 openrc - 管理不同的运行级

Alpine Linux可用的运行级

  • default

  • sysinit

  • boot

  • single

  • reboot

  • shutdown

3.5 关机重启指令 - 在容器中试了好像没反应

  • reboot 重启系统,类似于shutdown -r now。
  • halt 关机,类似于shutdown -h now。
  • poweroff 关机

0x04 安装nginx

4.1 安装nginx软件并更新

  • apk –update add –no-cache nginx

4.2 启动nginx(二选一执行)

  • /etc/init.d/nginx start
  • rc-service nginx start

4.3 将nginx添加到启动服务中,下次开机自动运行

  • rc-update add nginx

4.4 测试

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多