#数分でローカル環境で動かせて、かつ、本番まで使える軽量環境がまもなくやってきそう。
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 <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を使用):
$ 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でググッて気になるエントリーを探ってみてはいかが?