Adachinですっ。
インフラの友人が「Alpine Linuxの勉強会が渋谷であるんだけど行かないか?」と誘ってきたので、
仕事帰りに行ってメモ取ってきました。
下記イベント詳細:Alpine Linux Meetup Tokyo #1
■Alpine Linuxとは
読み方は「アルパイン」です。
musl libc、BusyBox をベースに構成されているやたら軽量でセキュアなLinux(組み込み系にも最適)。
LinuxではCentOS、Ubuntuが非常に有名ですが、なんでAlpineが最近熱いのか!?
それはこんな記事からだったのです・・・(下記にてリンク飛べます)
Docker Official Images are Moving to Alpine Linux
元々、Dockerのイメージファイルは圧縮されてかなり少ないイメージになっているんですが、
どうせならAlpine Linuxにしちゃおうぜ!となり、計画中と発表されましたが、既に切り替わっているようです。
そんなわけで、IT業界ではお祭り騒ぎになっているわけです。
というわけで、今後もしかしたらAlpineに切り替わるかもしれないので勉強がてらDockerに入れてみました。
■Docker Hub
DockerHubにAlpineのイメージファイルが上がってるんですが、
2つあってどれを使えばいいのかわからん!
勉強会でどっちを使えばいいのか教えてくれました。
・https://hub.docker.com/_/alpine/
こちらは公式。
apk-installコマンドがバンドルされてない。
~ # which apk-install ~ #
・https://hub.docker.com/r/gliderlabs/alpine/
apk-installコマンドがバンドルされている。
~ # which apk-install ~ # /usr/sbin/apk-install
これくらいなので、gliderlabsでもOKです。結局同じですw
apk-installについては以下で説明します。
■Alpine Linuxパッケージマネージャコマンド
・パッケージ追加/バージョン指定/パッケージ群をまとめて別名に
# apk add nginx vim # apk add ruby=2.2.4-r0 # apk add ruby --virtual=build-ruby 後から消すのが楽
・パッケージ削除
# apk del nginx
・アップデート
# apk update
・アップグレード
# apk upgrade
・インストール後にゴミを消す
# apk add --no-cache nginx
ここらへんをよしなにやってくれるのがapk-installコマンドなのです。
■ちょいと動かしてみた
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE alpine latest d7a513a663c1 10 days ago 4.798 MB gliderlabs/alpine latest 8944964f99f4 10 days ago 4.798 MB ubuntu latest e9ae3c220b23 10 days ago 187.9 MB centos latest e9fa5d3a0d0e 10 days ago 172.3 MB
約5MB!?驚異的な軽さだ。。
ちなみにISOだと83MBだそうです。
root@test-docker:~# docker run -it alpine /bin/bash docker: Error response from daemon: Container command '/bin/bash' not found or does not exist.. root
なんとAlpineはbashでなくsh(ash)だということを気をつけよう!!!
bashが必要ならインストールしよう。
/ # ls -l /bin/ |head -n 10 total 792 lrwxrwxrwx 1 root root 12 Apr 1 18:56 ash /bin/busybox lrwxrwxrwx 1 root root 12 Apr 1 18:56 base64 /bin/busybox lrwxrwxrwx 1 root root 12 Apr 1 18:56 bbconfig /bin/busybox -rwxr-xr-x 1 root root 809128 Dec 16 08:00 busybox lrwxrwxrwx 1 root root 12 Apr 1 18:56 cat /bin/busybox lrwxrwxrwx 1 root root 12 Apr 1 18:56 catv /bin/busybox lrwxrwxrwx 1 root root 12 Apr 1 18:56 chgrp /bin/busybox lrwxrwxrwx 1 root root 12 Apr 1 18:56 chmod /bin/busybox lrwxrwxrwx 1 root root 12 Apr 1 18:56 chown /bin/busybox
コマンド系は/bin/busybox (単一バイナリ)のシンボリックリンクになっている。
■cyberの@stormcat24さんより
実際に本番運営(xxxx FRESH!)をしている。
すぐ動画系のあれだと気づいた。
ECS(dockerに最適なEC2)とNginxで動いており、特に問題なく動いてるそうです。(すげえ。)
■@tonymorrisjpさんより
自作サーバにAlpineいれてdesktop環境が作れなくて断念したという話が会場でウケて爆笑した。
非常に市場価値があるなど。
■Amazonの人
実作業でECS使ってdockerにAlpine入れてゴニョゴニョしてた。
パワポ配布されてないかな….
■まとめ
勉強会の雰囲気は最高で現地に迷ったが会社の近くで笑った。
自分自身Alpineを使っていなかったので、勉強になった。
とにかくイメージは軽さは正義であることと、
次回もこの勉強会に参加していこうと思う。