先日、「マンガでわかるDocker」で Docker 入門を果たしました。
いやあ、湊川あいさんの「マンガでわかる」シリーズは分かりやすくてよいですね。同人誌なのですが、その分最新技術動向にキャッチアップできていてとてもよい感じです。BOOTH という pixiv 関連のサービスで購入できるので、興味を持たれたら試してみてはいかがでしょうか。
そして、「マンガでわかるDocker」で分からないことを Twitter でつぶやいたところ、著者の湊川あいさん自らアドバイスをくださるというサポートのよさ。ありがたい。
こちらをどうぞ!https://t.co/beiQUH1b8s
— 湊川🌱マンガでわかるDocker③AWS編 ダウンロード販売開始 (@llminatoll) February 28, 2019
そんなこんなで、「Docker 完全に理解した!」のですがw、疑問点もあったのですよね。
それを解消してくれたのが、さくらのナレッジの「Docker 入門」です。全6回の連載ですが、とても役に立つ内容ですね。
Docker をさわっていると、Docker のコマンドはなんとなく分かってきたのですが、Docker ってそもそもなんなの?という疑問が払拭できないで困っていました。既存の仮想化技術と一体何が違うのだろうか?と。
連載の1回目で、そもそも Docker と既存の仮想化技術の違いについて分かりやすく解説されていました。
今までの仮想化技術(Hypervisor)は、OSの上に仮想マシンを作成してその上でOSを仮想的に動かしていたのですよね。なのでどうしても動作が重くなりリソースを消費してしまうという欠点を持っていました。
ですが、Docker は Apache などの Web サービスをホストOSの機能を利用して、Apache だけを別プロセスで実行することで非常に軽量な動作をすることを可能にしました。仮想マシンを作成し動作させる負担がバッサリ取り払われたのだから当然ですね。
Docker と既存の仮想化技術の違いを一言で言えば、「仮想マシンを作る必要がなくなり負荷を大幅に減らすことに成功した仮想化技術」と言えるのではないでしょうか。
これを理解できるようになるまで、うんうんうなっていたのですがようやくスッキリすることができました。
連載の2回目と3回目では、Docker のコマンドの基本的な使い方の解説になっています。
これも復習になってよかったです。
連載の4回目では、ついに Dockerfile によるコンテナの自動作成が出てきました。やっと分かってきましたが、これがあるからこその Docker ですよね。そして、Vagrant も同様の仕組みは持ってはいるものの長期的にコストが高くなってしまうそうです(「マンガでわかるDocker」より)。
連載の5回目はコンテナ間通信。Docker ネットワークを作成して、コンテナを連携させる方法が解説されています。この辺になってくると実用的な感じがしてきますね。コンテナ間通信は、現在は Kubernetes で行うのが主流のようですね。
連載最後の6回目では、複数のコンテナを扱える Docker Compose の解説です。docker-compose コマンドと docker-compose.yml という設定ファイルを扱っていますね。
これができると、Docker の実行時コマンドでパラメータをずらずらと付けていたのがバカらしくなるくらい簡単に Docker の複数コンテナを実行できます。
さてここまで来て。
Docker 完全に理解した!
次は、Kubernetes だ!
と言いたいところだけれども、次の書籍を読んでさらに Docker の知識を深めたいと思います。
Docker実践ガイド 第2版 (impress top gear)
- 作者: 古賀政純
- 出版社/メーカー: インプレス
- 発売日: 2019/02/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
これを読み終えたら、Kubernetes にも手を出していきたいですね。
しかし、Docker 使う予定ないんだけどなんでこんなに勉強しているんだろ?w