はじめに
こんにちは、WatanabeJin(@Sicut_study)です。
今回は私が初学者のときに最も苦労したDockerの技術を身につけるためのロードマップを紹介していきます。
Dockerが難しいのはなんといっても概念的なところだと思っています。新人時代の私は入社していきなり「Dockerで環境構築して」とだけ先輩に言われて何もわからない状態から自力でなんとか使えるところまで1ヶ月かけて学びました。(プログラミング経験なしでいきなりDockerは辛かった)
その後、同じくプログラミング経験なしの方にDockerを指導した際に、この流れでやっていけば技術として身につくなと思ったのでまとめていきます。
概念が難しいDockerの学び方
— Watanabe Jin (@Sicut_study) January 10, 2024
私自身がものすごく1年目の時につまづいたDockerの勉強の仕方についてどのように身につけていったかを紹介します。… pic.twitter.com/2h9px5ujmZ
この記事の対象者
- Dockerという言葉は聞いたことあるがわからない人
- エンジニアになるために勉強している人
- もっと環境構築を楽にやりたい人
Dockerを勉強するときに大事なこと
Dockerはとにかく実際に自分で手を動かす機会を作らないと身につくことはありません
これを意識してロードマップを進めてみてください
ロードマップ
このロードマップは2週間から1ヶ月ほどを想定して作成しています。
ロードマップを通して、自分が使っているアプリケーションをDockerの上で起動できるようになることを目標にしています。
1. 書籍で学習する
Dockerに関してはいきなり手を動かそうとすると、そもそもの概念的なところがよくわからずに調べても何言っているかわからないという事態に陥ります。
そこでまずはDockerコマンドやdocker-composeの役割を知ることも含めて書籍を1冊手を動かして学習ことから始めます。
私は2021年の時点で購入可能なDockerの本をほぼすべて読みました。
その段階ではこちらの書籍がわかりやすいと感じました。
2024年現在では以下の書籍が販売されており、こちらも良さそうな気配はしています。
学習の期間は1週間程度で一気に終わらせるようにしましょう
またKubernetesに関しては一切触らないでください。
2. 扱っている言語の環境を作る
ここから実際に手を動かしてDockerの技術を学んでいくフェーズになります。
あなたが扱っている言語のDockerfileを使って、docker-composeで起動できるようにしましょう。
その環境の上で自分の使っている言語のアプリケーションを起動します。
ここまでできたらこのフェーズは完了です。
アプリに関しては作り始めると更に時間がかかるので、Hello Worldを返すだけの簡単なWebアプリで問題ありません。
そしてここからが現代ならではの話。いまChatGPTを使えば起動するDockerファイルの中身をすべて教えてくれるようになりました。
これではDockerfileの中身を理解しなくても起動は簡単にできてしまいます。しかし、あなたはDockerを理解するためにロードマップをやっているので、1行1行の設定を何のためにやっているのか理解することを意識しましょう。
3. コンテナレジストリを使えるようにする
ここまでできたら最後はDockerイメージのビルドやPush、Pullなどで何が行われているのかを実際にコンテナレジストリを使いながら学んでいきます。
コンテナレジストリは何を利用しても良いですが、私はDockerHub
を利用しました。
ここでやることは自分が作ったDockerイメージをレジストリにPushします。PushしたイメージをPullしてdocker-composeで起動することを目指します。
ここまで進めた方ならやりたいことのイメージはついているかと思います。
ステップ3まで終わらせることができたらDockerについてはある程度基本が抑えられて、自分でも利用できるようになるはずです。
ex. デプロイに挑戦してみる
ここまで理解した方はAWSなどのクラウドサービスを利用して、イメージを使いデプロイすることに挑戦してください。
ここからの話は以下の記事に詳しく乗っています。
このロードマップでは、どうやってWebサイトにアプリが公開されているんだろう、CI/CDはどのような仕組みで動いているのだろうという知見が抜けています。
ここまでやることによってある程度Dockerやコンテナ技術について理解したという段階になれるかと思います。
おわりに
今回は実際に私が教えている中でもっとも効率的にDockerを学習する流れについて紹介してみました。そろそろエンジニア5年目も近くなっていますが、徐々に1年目の大変だった記憶を忘れ始めてくる頃なので、忘れないうちに記事にして今後も投稿したいとかんがえています。
ここまで読んでいただけた方はいいねとストックよろしくお願いします。
@Sicut_study をフォローいただけるととてもうれしく思います。
今週もプログラミング頑張りましょう!
おすすめ記事
0からシリーズ
About Me
Webエンジニア転身して1年間本気で勉強
転職ドラフトで高額オファーを複数獲得
そこでの経験からアウトプットやマインドセットの発信に強みがある
エンジニアをやりながら、起業に挑戦中
アイデア作りやパブリックスピーキングを得意としてる
■ Twitter
https://twitter.com/Sicut_study
■ Instagram
https://www.instagram.com/himariajin
■ Youtube
https://www.youtube.com/channel/UCBFrGAJhPuuaoLwUIHBILsA
■ TikTok
https://www.tiktok.com/@sicut_study
■ プログラミングコーチングJISOU
https://projisou.jp
■ 登壇依頼などご依頼はこちらから
himaria.jin.watanabe@gmail.com