不要不急だけどDockerを学習する動機
現在、フロントエンドを中心に開発業務を行っている。今のチームでDockerは用いられていないし、私自身はDockerを仕事で使ったことは無いが今後必要となる機会が出てくることを予想する。
これは私の気質の問題かもしれないが、「未経験からゼロから」ならDockerを使いこなすまで一気に学習しようという気持ちになるのかもしれないが、現時点フロントエンドでの開発を担当しており、バックエンドの環境構築やデプロイなどを他のメンバーに半分以上任せている状況では体系的に一から学習するモチベーションを保ちにくい。
そこで、「とりあえずDockerを使う環境構築とはどういうものか」というのを経験するまでを目標とした学習ロードマップを書き記す。
前提
Windowsでの作業はやめとけ(WSL含む)
私はMacを触ったことないし、普段はWindowsを使っているが、開発はLinuxサーバーにSSHで接続して行っている。
はっきり言ってDockerに限らずWindowsで環境構築して開発作業するのはマゾです。やめておきましょう。
手間が膨大な上に書籍通りに操作しても詰まったりもするので非常に効率が悪い。
私の場合、PCを買い替えたときに前のPCにUbuntuをインストールしてSSH接続している。
Dockerを触る前に最低限のLinuxコマンドは身に着けておくべき
Dockerを操作するコマンドも、docker-composeを書く時もLinuxで用いるコマンドを知っておかないと正直何もできない。シェル芸のように巧みに使いこなすまでは必要ないが「lsって何ですか?」「絶対パスと相対パスの指定の仕方って?」という状態では全く話にならないと思った方がいい。
Dockerを触りながらLinuxコマンドも一緒に覚えようとする根性のある人もいるかもしれないが、少なくとも私にはそれは無理。
学習のロードマップ
ウェブや本での学習
Docker/Kubernetes実践コンテナ開発入門
Dockerを一から始めるのにオススメなテキストと巷で言われているが、この本を端から呼んで手を動かしてみたところでそれだけで環境構築は出来るようにならない。ただ、確かに雰囲気は味わえるし、入り口で雰囲気を味わうことは重要なので途中までこの本を通して手を動かしてみるといい。
なお、書籍については何を選んでもあまり変わらないと思うのであまり何冊も手を伸ばす必要はない。
学習用ページ
ここを参考に。これも目を通しておくといい。
【初心者向け】Dockerを勉強するための学習リソースをまとめてみた
とりあえずWordPressを構築してみる
開発の現場では「Dockerfile」と「docker-compose.yml」を用いてコンテナを構築している。
一番最初に「使える」コンテナとしてはWordpressを構築することを非常にお勧めする。これなら特に引っかかったりはまることは無いため達成感を味わえるはず。
WordPressでWebやブログを構築したことある人は多いと思う。今はエックスサーバーをレンタルすればボタン一つでセットアップできるが折角ならばコンテナを用いてみよう。
他の開発環境を構築してみる
Wordpressで構築出来たら今度はRailsやReactなどの環境も構築してみる。Dockerfileなどの書き方は色々なところで転がっているが、今度はサイトに書いてある通りのことをやってみてもエラーが出てしまうことも多くなる。エラーが出たら一つ一つエラー内容を調べて解決していってみる。
以上のようなことを何度か行った後、書籍や入門ページを振り返ってみることを繰り返すと少しは慣れてくる。
以下、気付いたことが有ったら今後更新する。