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

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

Dockerがweb系の方々にバズっていた2014年頃、Dockerを試すのは、お気軽とは言えなかった。例えば、当時のエントリー、[初心者による初心者のための Docker ~ Nginx を動かす ~](http://qiita.com/kasaharu/items/d4654193d75c67d65226)は、とても丁寧に解説してくれていて今でも一読に値するが、"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を早速使ってみた](http://qiita.com/xshsaku/items/b6b20d93c46058a64ff5)

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

![スクリーンショット 2016-05-09 20.23.50.png](https://qiita-image-store.s3.amazonaws.com/0/16455/670aa715-2ec6-7b60-9ee2-6bf568cd0655.png)

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

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

![スクリーンショット 2016-05-09 21.17.01.png](https://qiita-image-store.s3.amazonaws.com/0/16455/ef290429-7bee-d815-ddf0-0725747c279f.png)

#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](https://github.com/smebberson/docker-alpine/blob/master/alpine-nginx/Dockerfile)は、以下の通り:


```docker
FROM smebberson/alpine-base:1.2.0
MAINTAINER Scott Mebberson <scott@scottmebberson.com>

# 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を使用):

```sh
$ 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イメージの理解とコンテナのライフサイクル](http://www.slideshare.net/zembutsu/docker-images-containers-and-lifecycle)が、わかりやすくまとめてくれている。

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

![overview.PNG](https://qiita-image-store.s3.amazonaws.com/0/16455/bb52ab87-06ed-51ba-6443-ce7299032b15.png)

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




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

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

注、DockerPrivateBeta on windows10、もう動いている人もいらっしゃる：
-[Docker for Windows(beta)に関するメモ](http://qiita.com/zembutsu/items/c281ffc4481e2f2873ae)

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

![err.PNG](https://qiita-image-store.s3.amazonaws.com/0/16455/95c67670-9edd-da85-b891-7ec12520dee0.png)

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

http://bit.ly/docker_win10err

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

ちなみに、コマンドラインで上のようなエラーが出ている間は、kitematicも動いてくれない、残念! :
![kitekurenai.PNG](https://qiita-image-store.s3.amazonaws.com/0/16455/2c4093ed-ee10-ff92-a460-3a7bb2b87a94.png)

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

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

# Windowsな人もMacな人も、Alpine Linux上でもDockerを動かしてみるのも一案
以上！...で終わってもいいのだけど、ちょっと寂しいので、普段使いもできる軽量LinuxなAlpineを、windowsのvirtualboxで動かしてみたけど楽しいよ、的な[エントリー](http://qiita.com/kmry2045/items/d15e3f60bff8806f193f)を書いたついでに、Alpine linux上でdockerを動かせるよということを付記しておく。

といっても、[こちらのエントリー](http://qiita.com/masakielastic/items/e08240583215884d41a2)の"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でググッて気になるエントリーを探ってみてはいかが？