672
966

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【永久保存版】0からDockerを勉強するならこのロードマップに従え!

Last updated at Posted at 2024-01-21

docker-loadmap.png

はじめに

こんにちは、WatanabeJin(@Sicut_study)です。

今回は私が初学者のときに最も苦労したDockerの技術を身につけるためのロードマップを紹介していきます。

Dockerが難しいのはなんといっても概念的なところだと思っています。新人時代の私は入社していきなり「Dockerで環境構築して」とだけ先輩に言われて何もわからない状態から自力でなんとか使えるところまで1ヶ月かけて学びました。(プログラミング経験なしでいきなりDockerは辛かった)

その後、同じくプログラミング経験なしの方にDockerを指導した際に、この流れでやっていけば技術として身につくなと思ったのでまとめていきます。

この記事の対象者

  • 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フォローいただけるととてもうれしく思います。

今週もプログラミング頑張りましょう!

jisou-banner.png

おすすめ記事

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

672
966
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
672
966

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?