ariyasacca

カテゴリ一覧

Biz | SF | Software | tDiary | Web | ゲーム | サバティカル | スポーツ | ミステリ | メタル | 健康 | 投資 | 携帯 | 時事ネタ | 死生観 | 資格 | 雑記
2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|

2019-01-28 (月) [長年日記]

[雑記]『Dockerによるアプリケーション開発環境構築ガイド』

仮想化技術の一つであるDockerの使い方の解説書。

主にDocker初心者から中級者の方に向けて、Dockerの概念や基本から、実際にどのように現場で使えるのかまで、解説していきます。実際に現場で使っていそうな環境を想定して、そこに対してどのようにDockerを使っていけるのかを、具体的な例に沿って、実際に手を動かしながら、習得することができます。

2019-01現在、「Docker」という呼称が指す対象は広範に渡るが、本書は「アプリケーション開発環境構築」にフォーカスした内容となっている。

Docker ComposeやKubernetesといったオーケストレーションツールを活用するところまでカバーされていて、コンテナ周辺技術を一通り眺めてみるには良い教材なのだけど、途中に登場する「お題」の混迷ぶりや、サポートページの更新されてなさが致命的だと感じた。誤植が多いのに訂正情報がほとんど無いのはちょっと……。がんばって自己解決できる人なら大丈夫だが、少なくとも初心者が鵜呑みで写経しているとハマる可能性が高いと思った。

章ごとの感想

  • Chapter01:Dockerとは
    • よく見かける概念図によるコンテナとVMとの違いなど、基本的なポイントが平易に解説されている。
  • Chapter02:Dockerの基本的な使い方
    • Windows/macOS/Linuxそれぞれの環境でのインストール方法が豊富なキャプチャ画像と共に解説されている。親切である。
    • DockerのコマンドとDockerfileで頻出する構文について、1行ずつ実行しながら確かめられる。本書の中で1番良い。
    • 特に混乱するshell form(シェル形式)とexec form(実行形式)、ENTRYPOINTとCMDといった違いや使い分け・併用などが手厚く解説されている。
  • Chapter03:オンプレの構成をコピーしたDocker環境を作成する
    • オンプレで稼働してるWordPressアプリケーションをDockerイメージ化してみましょうといった実践的な内容。
    • Baseimage-dockerという複数サービスを同時に立ち上げるための環境を知らなかったので勉強になった。
  • Chapter04:本番環境からローカルのDocker環境にポーティングする
    • AWSで動かしてるTODOアプリケーションをDocker Compose化する演習になる。
    • さっきまでシンプルなWordPressだったが、ここから複雑なNodeを使ったJavaScriptアプリケーションになり、急に雲行きが怪しくなる。
    • AWSの画面操作はキャプチャ画像が大量で相変わらず親切で、課金回りも極力気にしなくて良いよう配慮されている。
    • とにかくお題のTODOアプリケーションコードが複雑過ぎる。いわゆるjQuery PromiseとJavaScript Promiseの混在するコードが何ページにも渡って掲載され、初心者には絶対理解できないと思う。
    • Dockerの本質でない情報が多く、苦痛の多い章だと感じた。
    • S3互換サーバー実装のminioの紹介や、node_modulesを含むVolumeマウントの勘所など、ためになる小ネタは多いのだが。
  • Chapter05:ローカルのDocker環境を本番環境にデプロイする
    • Kubernetesが登場する。
    • それまでLinuxだったホスト環境が、突然macOSになってしまう。読者にminikubeを使わせたい関係……? 
    • Docker ComposeのYAML設定をKubernetesのYAML設定に読みかえるとおおよそこうなる、みたいな解説は結構ためになる。
    • 最終的にはGCPのKubernetesクラスタでも動かしてみる構成になっている。結局ホストマシンをmacOSにする必要はあったのかな…。
  • Chapter06:Appendix
    • CircleCIでDockerイメージの継続的ビルドをする方法や、ホストマシンでのDocker容量の節約Tipsが紹介されている。思いの外役に立つ。

容量節約Tips

ちょくちょくお世話になりそうなのでメモっておく。

# TAGがnoneのものを全て削除
$ docker images -f dangling=true -q | xargs docker rmi

# リンク切れボリュームの一括削除
$ docker volume ls -qf dangling=true | xargs docker volume rm

# 終了済みコンテナの一括削除
$ docker ps --filter "status=exited" -q | xargs docker rm -v

総評

書評するにあたって、あらためてChapter04とChapter05を読み返してみたが、やはりもっとお題のTODOアプリケーションを簡単なものにして良いと思う。何ならSinatraのような軽量なフレームワークを使った方が優しいのではないか。Rubyなら初心者にもそんなに難しくない。Node周辺技術はどんどん事情が変わってしまうので、かえって本書の内容が通用する賞味期限を短くしていて勿体ないと僕には感じられた。

何ページにも渡って掲載されているJavaScriptのコードも正直言って多過ぎる。これじゃNodeアプリケーション構築ガイドだよ。DockerもNodeも一緒に入門したい人には良いのかも知れないが。

Chapter01 + Chapter02 + Chapter06の内容で価格1,000円台であれば自信を持って初心者にオススメできるし、400以上もあるページ数も半分以下になって携帯性も高まると思う。

Dockerによるアプリケーション開発環境構築ガイド(櫻井 洋一郎/村崎 大輔)


最近のツッコミ

  1. ウルトラマン (2019-04-18(木)19:22)「声優代節約の為やぞ」
  2. ああああ (2019-03-28(木)15:19)「バージョンは好きにしていいのか。 」
  3. 雷悶 (2019-01-06(日)09:46)「時代はProっしょ~」

参号館  の中の  日記(ariyasacca)

トップ «前の日記(2019-01-27 (日)) 最新 次の日記(2019-02-03 (日))» 編集