Dockerってすごくない?

Game Users を Node.js で書き直したいので、本を読みながら Node.js の勉強をし始めました。

JavaScriptでのWeb開発 ~ Node.js + Express + MongoDB + ReactでWebアプリを開発しよう ~ その1(改訂版)

この本を読みながらコードを書きつつ進めていたのですが、MongoDB の導入部分で詰まってしまいました。これまでは XAMPP や Node.js などの Windows 用インストーラーを利用して開発環境を簡単に構築していたのですが、MongoDB は Windows の設定がややこしそうなので、ここらへんで一度、今後の環境構築について見直すべきではないかと考え、新たな道を模索することにしました。

比較的、新しい技術や機能を使おうとしたときに、Windows はやっぱり不便なんですよね。Mac を使っているプログラマーが多い理由が理解できました。

そこで勉強しようと思ったのが、なにかと話題になっている Docker。ネットでプログラム関連の記事を調べていると、あちこちで目につくので名前だけは知っていたのですが、開発環境構築に便利だと聞いて手を出してみました。

とりあえず Docker Toolbox を利用してローカル環境で Node.js の Hello World ページが表示できるところまでは行けました。

本当に初心者レベルなのですが、触ってみて感じたのは Docker(コンテナ技術)はすごいということです。なにがすごいのかというと、例えば Node.js の Docker イメージ(コンテナを作るための元)がオフィシャルから提供されており、それを簡単なコマンドで導入することができるのです。WordPress や各種データベースも公式からイメージが提供されているので、それを元にして、わずか数行のコマンドで開発環境を構築することができます。

これがやばい!Docker を利用すれば本当に簡単に開発環境が作れるのです。Docker はバックエンド臭が強くて(解説サイトは難解な専門用語だらけ!)導入障壁が高いように思われますが、ローカルに開発環境を作るだけなら、そこまで難しいものではないです。

黒い画面に恐怖を感じる人は触りたいと思えないかもしれませんが、そういう人にこそ Docker をお勧めしたいですね。最初に Docker についての学習コストを支払う必要はありますが、昔ながらの方法で手動で開発環境を構築していくよりも、Docker を利用した方が、のちのち楽になるのではないかと感じています。

Docker実戦活用ガイド

自分はこの本を読みながら(値段が高いので Kindle Unlimited で読むことをオススメします)1週間くらいで、とりあえず使うことはできるようになりました。そのくらいのコストで、今後の開発環境構築の手間と憂いが除かれるなら、安いものではないかと思います。

具体性のないぼんやりした内容なので、いまいち良さが伝わってこないかもしれませんが、もうちょっと使いこなせるようになったら、雑魚プログラマー視点からの Docker の利点をまとめた記事を書いてみようと思います。