Alpine linuxを触ってみよう

34
Alpine Linux を をををををを GMO ををををををををを ををををををを Ryo Adachi

Transcript of Alpine linuxを触ってみよう

Page 1: Alpine linuxを触ってみよう

Alpine Linux を触ってみようGMO アドマーケティング インフラ開発部

Ryo Adachi

Page 2: Alpine linuxを触ってみよう

アジェンダ• Alpine Linux と Docker• Alpine Linux とは• パッケージマネージャーコマンドの紹介• Docker で Alpine を動かす• これからやってみたいこと

Page 3: Alpine linuxを触ってみよう

• @adachin0817• Ryo Adachi• GMO AD Marketing• Infra Engineer• http://adachin.server-on.net/

Page 4: Alpine linuxを触ってみよう

今回もDocker ネタですw

Page 5: Alpine linuxを触ってみよう

Alpine Linuxとはナンゾ ?

Page 6: Alpine linuxを触ってみよう

そもそもなんでAlpine Linux が熱いの!?

Page 7: Alpine linuxを触ってみよう

とある記事にてIncidentay, we have hired

Natanael Copa, the awesome creator of Alpine Linux and are in

the process of switching the Docker official image library from

ubuntu to Alpine.

Page 8: Alpine linuxを触ってみよう

• Docker イメージ (ubuntu) が Alpine へ !?• 計画中だが既に切り替わってる• これは流行るのでは !? 今のうちに触らないと• 「 Alpine Linux Meetup Tokyo 」にて勉強会行ってきた !

Page 9: Alpine linuxを触ってみよう

Alpine Linux ってどんな OS なの?

Page 10: Alpine linuxを触ってみよう

• 読み方は「アルパイン」です• musl libc 、 BusyBox をベースに構成• やたら軽量でセキュアな Linux• 組み込み系にも最適• 昔からある OS⇛ いつからなのか分からない• 名前かわいい

Page 11: Alpine linuxを触ってみよう

軽量って…そんな大したことないんじゃないの

Page 12: Alpine linuxを触ってみよう

驚きの軽さ• $ docker images

REPOSITORY TAG IMAGE ID CREATED SIZEalpine latest d7a513a663c1 10 days ago 4.798 MBgliderlabs/alpine latest 8944964f99f4 10 days ago 4.798 MBubuntu latest e9ae3c220b23 10 days ago 187.9 MBcentos latest e9fa5d3a0d0e 10 days ago 172.3 MB

Page 13: Alpine linuxを触ってみよう

ISO 比較• CentOS

⇛ 約 4GB• Ubuntu

⇛ 約 700MB• Alpine

⇛83MB

Page 14: Alpine linuxを触ってみよう

軽いと何がいいのか• docker pull/push など時間短縮• オートスケールで素早くサービスイン• 小さければ小さいほど価値を持つ

Page 15: Alpine linuxを触ってみよう

Docker にとってAlpine は新技術

Page 16: Alpine linuxを触ってみよう

というわけで触ってみた

Page 17: Alpine linuxを触ってみよう

Docker Hub• https://hub.docker.com/_/alpine/

⇛ 公式• https://hub.docker.com/r/gliderlabs/alpine/

⇛apk-install コマンドがバンドルされている。• ぶっちゃけどっちでも OK• Vagrant での検証はまだ

Page 18: Alpine linuxを触ってみよう

apk コマンドを駆使せよ !!

Page 19: Alpine linuxを触ってみよう

パッケージインストール• CentOS

⇛# yum install nginx• Alpine

⇛# apk add nginx vim⇛# apk add ruby=2.2.4-r0 # バージョン指定も⇛ # apk add ruby --virtual=build-ruby 後から消すのが楽

Page 20: Alpine linuxを触ってみよう

パッケージ探す• CentOS

⇛# yum search nginx• Alpine

⇛# apk search nginxnginx-1.8.1-r0collectd-nginx-5.5.0-r1nginx-lua-1.8.0-r5nginx-lua-doc-1.8.0-r5nginx-vim-1.8.1-r0nginx-initscripts-1.8.0-r0nginx-doc-1.8.1-r0

Page 21: Alpine linuxを触ってみよう

パッケージ削除• CentOS

⇛# yum remove nginx• Alpine

⇛# apk del nginx

Page 22: Alpine linuxを触ってみよう

インストール後にゴミ削除

• # apk add —no-cache nginx⇛apk-install コマンドでもできる

Page 23: Alpine linuxを触ってみよう

アップデート• CentOS

⇛# yum update• Alpine Linux

⇛# apk update

Page 24: Alpine linuxを触ってみよう

ちょぃと動かしてみた

Page 25: Alpine linuxを触ってみよう

docker run

• root@test-docker:~# docker run -it alpine /bin/bash

• docker: Error response from daemon: Container command '/bin/bash' not found or does not exist..あれ 起動できない・・・

Page 26: Alpine linuxを触ってみよう

bash⇛☓sh(ash)⇛◎

Page 27: Alpine linuxを触ってみよう

bash 使いたい人はインストールしましょ

Page 28: Alpine linuxを触ってみよう

シンボリックリンク• / # ls -l /bin/ |head -n 10

total 792lrwxrwxrwx 1 root root 12 Apr 1 18:56 ash /bin/busyboxlrwxrwxrwx 1 root root 12 Apr 1 18:56 base64 /bin/busyboxlrwxrwxrwx 1 root root 12 Apr 1 18:56 bbconfig /bin/busybox-rwxr-xr-x 1 root root 809128 Dec 16 08:00 busyboxlrwxrwxrwx 1 root root 12 Apr 1 18:56 cat /bin/busyboxlrwxrwxrwx 1 root root 12 Apr 1 18:56 catv /bin/busyboxlrwxrwxrwx 1 root root 12 Apr 1 18:56 chgrp /bin/busyboxlrwxrwxrwx 1 root root 12 Apr 1 18:56 chmod /bin/busyboxlrwxrwxrwx 1 root root 12 Apr 1 18:56 chown /bin/busybox

• /bin/busybox ( 単一バイナリ ) のシンボリックリンク

Page 29: Alpine linuxを触ってみよう

パッケージ一覧• https://pkgs.alpinelinux.org/packages十分

Page 30: Alpine linuxを触ってみよう

[ 余談 ]glibc

• なんと Alpine には glibc がない• frolvad/alpine-glibc

⇛https://hub.docker.com/r/frolvlad/alpine-glibc/

Page 31: Alpine linuxを触ってみよう

まとめ• apk が慣れればそんなに難しくない• WEB サーバなら運営できそう現在自作⇛ PC から自宅サーバに移行し、

docker 運営計画中• nginx などパッケージも軽量化を目指したい

Page 32: Alpine linuxを触ってみよう

これからやってみたいこと• AKaNe の管理画面サーバ 2 台 (CentOS5 系… )• Docker へリプレイス• nginx と ruby しか動いていない• Alpine 使って運営

Page 33: Alpine linuxを触ってみよう

軽さは正義

Page 34: Alpine linuxを触ってみよう

ご清聴ありがとうございました!