初心者のための DockerPrivateBeta with AlpineLinux ① Macに導入編


数分でローカル環境で動かせて、かつ、本番まで使える軽量環境がまもなくやってきそう。

Dockerがweb系の方々にバズっていた2014年頃、Dockerを試すのは、お気軽とは言えなかった。例えば、当時のエントリー、初心者による初心者のための Docker ~ Nginx を動かす ~は、とても丁寧に解説してくれていて今でも一読に値するが、"Nginx on Docker with CoreOS on Virtualbox with Vagrant"という内容は、、動かすことだけが目標になってしまいそう。また、CoreOSも、今にして思うと、けっこうマニアック。

それから約2年。ほんとに数分でローカル環境で動かせて、かつ、本番まで使える軽量環境、"Nginx on Docker with Alpine Linux"の世界がやってきた。そう、今年度に新登場のDockerPrivateBetaによってね。

今はまだ、Private Betaだけど、楽しい未来が待ってそうな話。ということで、軽く動かしておこう。
今回はMac導入編。
※末尾に、グヌヌ...なwindows 10でのDockerPrivateBetaの現状を書いておく。近日中にWindows10導入編を書きたい。

お気軽Docker with Alpine Linux

さて、Mac上でのDocker Private Betaについては、Qiita上に、すでに、お試しレポートがある。

私の"使ってみた"も基本的に同じ。Docker Private betaを通常のMacアプリと同様にインストールするだけ:

これだけで、dockerをお試しできるようになる。こちらは、Mac OSの仮想環境と統合されており、virtualboxやvagrantは必要ない。今月からは、メール登録して、その日のうちにprivate betaの招待状がきたりするらしいので、お気軽にdockerを試すのに極めておすすめ。

インストール後は、Dockerクジラのガイダンスに従って、コンソール画面でdocker versionやdocker psを試しておこう。

Docker hub上のalpine linuxベースのイメージ、大増殖中。

その他、おおよそのところは、上のレポートに譲るとして、ここでは、Docker hubのalpine linuxリポジトリの盛り上がりっぷりを軽く書いておく。。
docker hubリポジトリには続々とalpine linuxベースのdockerイメージがpushされている:
http://bit.ly/dockalpinefull

※現時点で、alpine linuxをベースとしたイメージは3,600以上とのこと。

この中から、alpine linuxベースのDockerイメージのメジャーどころ(スター数が多い又はダウンロード数が多い)をいくつか試してみると、Docker private betaLalpine linuxの軽さが実感できるはず。

その中でひとつだけ、nginx対応のイメージを紹介しておく:
https://hub.docker.com/r/smebberson/alpine-nginx/

こちらのDockerfileは、以下の通り:

FROM smebberson/alpine-base:1.2.0
MAINTAINER Scott Mebberson <[email protected]>

# Install nginx
RUN apk add --update nginx=1.8.0-r1 && \
    rm -rf /var/cache/apk/* && \
    chown -R nginx:www-data /var/lib/nginx

# Add the files
ADD root /

# Expose the ports for nginx
EXPOSE 80 443

以下のコマンドで、私の古めMacbook airでも、10秒ちょいで、Nginxが立ち上がった。

docker run -p 80:80 -p 443:443 --name nginx smebberson/alpine-nginx

※-p オプションは、ローカル環境への port fordingを行う(この場合、80番ポート-> 80番ポート)

アクセス結果はこんな感じ(curlっぽい(?)httpieを使用):

$ http get localhost
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html
Date: Mon, 09 May 2016 12:39:45 GMT
ETag: W/"5654f43d-352"
Last-Modified: Tue, 24 Nov 2015 23:35:25 GMT
Server: nginx/1.8.0
Transfer-Encoding: chunked

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

...以下略...

ここから先は、中級者を目指す別エントリーで書こうと思う

(付記) Docker/Docker Hub界隈の用語を整理したい。

リポジトリ,イメージ,push...といったDocker/Docker Hub界隈の用語については、スライドDockerイメージの理解とコンテナのライフサイクルが、わかりやすくまとめてくれている。

本スライド中から全体像部分を1枚引用させていただく。

...git/githubに関する理解が役立ちそうなことがわかるかな。

(おまけ)GW中に、DockerPrivateBeta on windows10も動かしておくつもりだった。

さて、windowsネタらしい(?)トラブルレポートを付記。

注、DockerPrivateBeta on windows10、もう動いている人もいらっしゃる:
-Docker for Windows(beta)に関するメモ

自分の場合、insider preview版のwindows 10を使っているせいか、Docker Forumで議論されている”Error response from daemon: dial tcp 10.0.75.2:2375...”の板に起因するエラーで、いまのところ、動かせていない(以下のような奴)。

この類のエラーは、以下にある通り、Dockerチームが頑張ってくれて次の(今週中に出てくる?)Beta 10では動くっぽいので、今しばらく待ちましょう。

※ Hyper-V周りをいじくれば動かせるらしいのだけど、GW中は意外とあれこれ忙しく、いじくる気力がなかった。

ちなみに、コマンドラインで上のようなエラーが出ている間は、kitematicも動いてくれない、残念! :

DockerPrivateBeta@windows 10、他の症状に見舞われている人たちもいるみたいね。

...ぁ、windows 7/8はそもそもDockerPrivateBetaの動作対象外、残念!

Windowsな人もMacな人も、Alpine Linux上でもDockerを動かしてみるのも一案

以上!...で終わってもいいのだけど、ちょっと寂しいので、普段使いもできる軽量LinuxなAlpineを、windowsのvirtualboxで動かしてみたけど楽しいよ、的なエントリーを書いたついでに、Alpine linux上でdockerを動かせるよということを付記しておく。

といっても、こちらのエントリーの"Alpine Linux に Docker をインストールする"に概ね従っただけ。

自分の場合、Alpine Linux上で以下をタイプするだけで、dockerが動作した。

apk update
apk add docker

...ちょっとしたワーニングが出るけど、ローカルでのお試しなので気にしてない。windows7/8な人はもちろん、Macな人もalpine linuxを学んでおきたい人は、Docker on Alpine Linuxもお勧めかも。

Dockerのお供はAlpine Linux、という時代が来つつあることが実感できるかも(もちろん、別な軽量Linuxに移る可能性はあるけど、その時もLinuxの経験値は決して無駄にならないはず)。

 今年が、DockerとAlpine Linuxの学び時か。

このエントリー書いてて改めて思ったけど、DockerもAlpine Linuxも先人の経験値が詰まったエントリーがいくつも見つかる。vagrantやvirtualboxの諸々に悩まされずに、DockerとAlpine Linuxをお試しするのは、今年がいい気がする。まずは、Docker & Alpine Linuxでググッて気になるエントリーを探ってみてはいかが?