Quantcast
Channel: ADACHIN SERVER LABO
Viewing all articles
Browse latest Browse all 164

[Docker][Alpine Linux]イメージ5MB!?軽量Linuxを触ってみた。

$
0
0

Adachinですっ。

インフラの友人が「Alpine Linuxの勉強会が渋谷であるんだけど行かないか?」と誘ってきたので、

仕事帰りに行ってメモ取ってきました。

下記イベント詳細:Alpine Linux Meetup Tokyo #1

a01


■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を使っていなかったので、勉強になった。
とにかくイメージは軽さは正義であることと、
次回もこの勉強会に参加していこうと思う。


Viewing all articles
Browse latest Browse all 164

Trending Articles