Amazon EC2でRancherOSを触ってみた

はじめに

Docker Blogで興味深い記事がアップされました。

Dockerコンテナを動かすためのミニマムなOSとしては、CoreOSSnappy Ubuntu CoreProject Atomicなどがありました。そしてこのBlog記事では、2週間以内に新たなtiny Docker OSであるRancherOSがリリースされると紹介されています。RancherOSの特徴は以下の通り。

  • 超ミニマム。RancherOSのISOバイナリは20MBしか無い(Mac OS XのFinder上だと21MBと表示されてしまいました)

“ダウンロード”を検索

  • OS自体がDocker上で動く。RancherOSではPID 1でsysvinitやsystemdでは無くSystem Dockerが動き、その上に各サブシステムが動きます。RancherOSのgithubに置かれた画像がわかりやすいです。

rancheros

詳しくはRancherのBlogに記事があります。

すでにAWS上にはRancherOSのAMIが置かれています。ということで、早速触ってみました!

やってみた

今回は東京リージョンで使っています。以下のようにAMIが用意されていますので、こちらでEC2をLaunchします。

EC2_Management_Console

ログインはSSHで行います。ユーザーは"rancher"です。

$ ssh -i ./.ssh/mykey.pem -l rancher 54.199.XXX.XXX
[rancher@rancher ~]$

psコマンドで確認すると、確かにPID 1でDocker(System Docker)が動いています。PID 343がUser Dockerですね。

[rancher@rancher ~]$ ps aux
PID   USER     COMMAND
    1 root     docker -d -s overlay -b none --restart=false -H unix:///var/run/system-docker.sock
  343 root     docker -d -s overlay --tlsverify --tlscacert=/etc/docker/tls/ca.pem --tlscert=/etc/docker/tl

System Dockerはsystem-dockerコマンドで操作します。試しにpsを実行してみると、以下のように、syslogやntpもSystem Docker上のコンテナとして動作していることがわかります。これは面白い。OS自体がコンテナというブロックを組み合わせているようですね。

[rancher@rancher ~]$ sudo system-docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
d518d2fa217f        console:latest      "/usr/sbin/console.s   7 minutes ago       Up 7 minutes                            console
3b7cf0e02edd        userdocker:latest   "/docker.sh"           7 minutes ago       Up 7 minutes                            userdocker
24836eee115a        syslog:latest       "/syslog.sh"           7 minutes ago       Up 7 minutes                            syslog
1fbd388671b0        ntp:latest          "/ntp.sh"              7 minutes ago       Up 7 minutes                            ntp

User Dockerも実行してみましょう。

[rancher@rancher ~]$ docker run busybox echo "Hello RancherOS"
Hello RancherOS
[rancher@rancher ~]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                     PORTS               NAMES
217d552d06e3        busybox:latest      "echo 'Hello Rancher   8 seconds ago       Exited (0) 8 seconds ago                       evil_swartz

うん、普通のDockerですね!

さいごに

何もかもDocker上で動くOS、というコンセプトはとても面白いなと思います。Docker Machineとして、あるいはAmazon EC2 Container Serviceのクラスタインスタンスとして、活用が進むかもしれませんね。要チェックです!