Alpine Linuxとは?
2010年ごろにリリースされたC標準ライブラリとしてmuslを採用しBusyBoxをベースとした非常に軽量なLinuxのディストリビューションの一つです。RubyやRails、nodeなどのコンテナのベースイメージによく使われます。Debian系でもRedHat系でもないです。
BusyBox
Alpine Linuxの中核的なプログラムです。たくさんのUNIXコマンドを一つのファイルにまとめています。Alpine Linxでlsコマンドを打った場合は/bin/busyboxというバイナリが実行されてlsコマンド処理が実行されます。メモリの消費量を抑えるためにコマンドが単一のバイナリで提供されているのです。
サイズ
25MB程度です。同じバージョンの通常のLinuxが328MBとかなので1/10程度の容量になっており非常に軽量ということがわかります。なので、コンテナイメージのpushやpullが通常のLinuxに比べて高速なので開発効率が上がります。
なぜ普通のLinuxに比べて軽量なのか?
Linuxのディストリビューションは、「カーネル」と「ソフトウェア」の二つで構成されるのですが通常のLinuxに比べて「ソフトウェア部分」を必要最小限に抑えているので軽量を実現しています。
その他メリット
軽量で余計なパッケージが入っていないので脆弱性などが組み込まれずづらくなっており、アップデート作業などの余計な保守負担が減ります。
なお、登場当初はCentOSやubuntuよりも標的になりにくかったのですが、最近はalpineも標的になりやすくはなっているのでそれなりのセキュリティ対策は求められます。
DockerでAlpine Linuxを使う。
1 |
docker run -it alpine:latest sh |
dockerをインストールした上で、最新版を使いたい場合は上記のように指定すればいけます。
コマンド
apk(Alpine Package Keeper)
Alpine Linuxのパッケージ関連のコマンドです。通常のLinuxで言うところのyumとかaptとかと同じです。当初はシェルスクリプトで書かれていましたが、現在はC言語で書き直されています。
アップデート、OSの最新化
1 |
apk update |
パッケージのインストール
1 |
apk add curl |
例えば、curlをインストールしたい場合は上記のように記述します。
この記事へのコメントはありません。