All Articles

Udemy で「Linux とネットワークの基礎から学ぶ Docker 入門」をリリースしました

先日、Udemy で「Linux とネットワークの基礎から学ぶ Docker 入門」というコースをリリースしました。

どんなコースなのか、どういう考えで作ったのかを、この記事で少し紹介させていただきます。

コース概要

このコースは、タイトル通り Docker に入門していく内容ですが、特徴は Linux やネットワークの基礎から学べることです。

具体的には、

  • Web サーバをさわりながら、「サーバでプログラムを動かすというのはどういうことか」を学ぶ
  • シンプルな通信のプログラムを実装したり、手作業で Web サーバと通信したりして、ネットワークの超基礎を学ぶ
  • Linux で「Web サーバ + アプリケーションサーバ + DB」という典型的な 3 層構造の Web アプリケーションの環境構築を学ぶ

といったところから始めます。

その後、Docker に入門して、最終的には Docker を使った開発環境を完成させていきます。

なぜこのコースを作ったのか

ここから、このコースを作った背景について書いていきます。

Docker の入門で難しいのは、Docker 自体の入門ではない

Docker の入門で難しいと感じている方は少なくないと思いますが、実際には Docker 自体の入門はそれほど難しくありません

難しいのは、前提として Linux とネットワークの基礎知識が求められることです。

Docker での環境構築は、「Linux での環境構築の知識にプラスで Docker の知識が必要」という関係になっています。

なので、Docker を勉強する際は、まず Linux での環境構築ができる必要があるのです。 (同時に、そのために必要なネットワークの基礎知識も必要になります)

逆に、Linux とネットワークの基礎知識があれば、Docker の入門でつまずく点はほとんどないです。

Docker をしっかり理解する最短ルート

とはいえ、特にアプリケーションエンジニアの方が、「Docker をキャッチアップするため、まず Linux やネットワークから勉強しよう」とは思いにくいでしょう。

もしも Linux やネットワークの知識が必要だと気付いても、「そこまでの勉強は時間がかかるので避けたい」と思う方が多いのではないでしょうか?

書籍などでも、Linux やネットワークの基礎知識から Docker の入門までほど良く解説してくれている例は見当たりません。(少なくとも日本語では)

そこでこのコースでは、最低限必要な範囲で Linux やネットワークの基礎を学んでから、Docker の入門に取り組むという構成にしました。

主な対象者

このような背景から、対象者としては

  • Docker を使っているが、実はあまりよく分かっていない
  • Web アプリケーション開発の基礎知識を身に付け、次のステップとして Docker を学ぼうとしている
  • Docker について学ぼうとしているが、Linux やネットワーク関係の用語が分からず困っている
  • インフラへの苦手意識を克服したいアプリケーションエンジニア

といった方を想定しています。

こだわりポイント

ここから、このコースを作る上で、特にこだわった点を紹介させていただきます。

「プログラムを実行する」ということを、入門よりも一歩深く解説

Docker コンテナで何かを実行するというのは、Linux でプログラムを実行する (= プロセスを動かす) ということです。

特にアプリケーションエンジニアの方には、「OS」や「プロセス」というものが何者なのか、あまりイメージがわかないことも多いと思います。

ですが、この「OS」や「プロセス」といったもののイメージがないまま Docker を理解するのは難しいです。

そこでこの講座では、Web サーバ (nginx) をさわりながら、じっくりと「プログラムを実行する (= プロセスを動かす)」ということの理解を深めていけるようにしました。

ネットワークの超基礎を、手を動かして学ぶ

もう 1 つ勉強が難しいのが、ネットワークについてです。

Docker の入門で必要なのは、

  • 「IP アドレス」や「ポート番号」とは何か
  • HTTP とは何か

といったあたりで、ネットワークの知識としては入門中の入門ですが、ここが壁になっていることは多いです。

これらを勉強しようとすると、読書や座学での学習になりやすく、「なんとなく分かった気になるものの定着しない」ということも多いです。

そこでこの講座では、プログラムを書いたり手作業で通信したりしながら、ネットワークの超基礎を学べるようにしました。

Web アプリケーションの仕組みの理解

ここまで、Docker の前提知識として必要なのは Linux とネットワークと書いてきましたが、実際には「Web アプリケーション」の基礎知識が足りていないケースも多いです。

現代の Web アプリケーションは、ブラウザ上でもリッチなコードが動いていたり、と思えば同様のコードがサーバ上で動いていたりと、入門者にとってはかなり複雑な挙動をしていると思います。

ですが、Web アプリケーションのどこで何が動いているのかが分からないと、それを Docker で動かすことはできません。

そこで、簡単な Web アプリケーションを実装しながら、その仕組みの概要も学べるようにしました。

おわりに

ということで、力を入れて作成したこちらのコースですが、公開数日で早速 30 名以上の方に手にとっていただけました。

まだまだ不足している点もあるかもしれませんが、手にとってくださった方にフィードバックをいただきつつ、徐々に改善していこうと思います。

このコースに引き続き、今後も Udemy でいくつか講座を出していきたいと思います。

最後になりますが、以下は講師から発行できる割引クーポン 付きの URL となっています。

https://www.udemy.com/course/docker-from-linux-and-networking/?couponCode=C67C4BD9998FA374B3FD

ご興味ある方はこちらからアクセスしてみてください。