酒と開発の日々

飲酒大好き駆け出しエンジニアのブログ

オライリーのDockerがDocker入門書に最適だと思いこんでいたら思い切りはしごを外された話。

みなさんおはこんばんにちは。ぐーどらです。

先日こんなやり取りをしました。

その時はゲラゲラ笑っていただけなのですが、最近ツイートで見かける他社環境や参加する勉強会での話を聞いているうちにどんどんと他社さんの環境やプロダクトに使われている技術スタックが羨ましくなってきました。そこで転職活動するだけならタダだし動いてみるのもありじゃない?という助言に乗っかり、先日エージェントに登録しました。来週からエージェントさんとちょこちょこやり取りを行い、自分の市場価値を測りに行こうと思います。

因みに前々から続いている社内改善シリーズを楽しみにして頂いていた方は申し訳ございません。今週はGitLabが手付かずになってしまい、進捗出ませんでした。なので、今週の記事は個人で学習している内容になります。

ところでDockerにもう一度入門した

Dockerなんもわからん勢なので、改めてDockerを使い物にすべく学習し始めました。なんもわからん。

僕はネット記事を漁った結果、なんもわからんになりました。そこで次に行き着くのはやはり本ということで、今回購入したのはオライリーのDockerでした。

www.oreilly.co.jp

ちなみに実はもう一冊Dockerの書籍は購入していて、こちらの書籍は持っている状態でした。

「Docker/Kubernetes 実践コンテナ開発入門」を読んでみて、さらに別の書籍が欲しくなった理由としては

  • 内容が実践的すぎ、ネット上にあるDockerを使った開発環境のリポジトリを見てもなぜそのような構成にしているのかわからない場合が多々あった
  • どちらかというと実践的なハンズオン形式の書籍であったため、もう少し基礎的な部分から理解を深めたいと思った

などを感じており、一言に纏めると「Dockerを使うにあたり、Dockerに関する正しい知識が欲しかった」ということです。Dockerなんもわからん。個人的な技術書に限った好みはある程度傾向が見えてきており、

  • 扱っているものの情報がある程度網羅されている
  • 項目で羅列可能なものが羅列されている。(Dockerの場合はDockerfileに記載する命令などは一覧で見たくなる)

こういう教科書的な使い方ができる書籍だと相性が良いようです。ジュンク堂書店 渋谷店で購入したのですが、置かれていた書籍でこれを満たしていた書籍はオライリーのDockerだけでした。

オライリー本にはジョークもあった

はい、オライリーと言うと身構える方が多数いらっしゃると思います。僕も身構えていました。この本の3章を読むまでは。1章はDockerの歴史的背景、2章はインストール方法についてなので、実際に手を動かすのは3章からです。

OK、それでは新たに、実際に取っておく有益なコンテナを構築しましょう。生成するのは、Docker 化された cowsay アプリケーションです。もしも cowsay が何かを知らばければ、覚悟を決めることをお勧めします。

という仰々しい前振りから始りますが、実際に構築させられるアプリケーションはこれ。

おい。オライリー。おい。

しかもご丁寧に注釈で

ええと、有益と書いてはみましたが、厳密には正しくないですね

と書かれていました。オライリーとは思えないフレンドリーさがあり、少し手を動かすのが楽しくなりました。

オライリー本の罠

オライリー本でも意外にジョークが入ってたりするんだと思いながら手を動かし、5章に入ります。

しかし最初のコンテナのビルドに失敗します。なぜだ。Docker logsコマンドを使った結果、Pythonのコードで、インデントが間違っている模様…

幸いにも書籍内にGitHubリポジトリを用意している旨が記載されていたので、コードを見比べた結果、解消できました。

from flask import Flask
(インデント)app = Flask(__name__)

どうやらこの箇所のインデントが間違っていたようです。

しかし問題はそれだけではなかったのです。さらに進めるとまたビルドが通らなくなります。色々調べてもよくわからなかったのですが、Pythonのベースイメージのバージョンを一つ落とすとビルドが通るように。しかしその状態でもアプリケーションを動かしてもHTTP 500ステータスが返ってくるという散々な目に。おい。オライリー。おい。

散々なことを書きましたが、一応フォローすると、Dockerについて手を動かすという目的は達成できているので、まあ良しとします。動かすアプリケーションもHello World を出力させるだけなので、特に気にしてもしょうがないという気持ちにもなりました。

雑な感想

  • オライリーでもコードが間違っている場合はある=書籍だからといって鵜呑みにしてはいけない。最後は地に足の着いた知識が役に立つ。
  • Dockerについての知識は着実についているため、コードの質はともかく、内容については満足している。エラーを気にしなければ手を動かして覚えるにはやはり最適解。

今回は短い記事ですがこんなところで!ではまたよろしくどうぞ~。