[勉強会スライド] 30分×5分で学ぶ Docker
TL;DR
私の勤め先で、社内勉強会「30分×5日で学ぶ Docker」を開催したので、スライド資料を公開します。
記事の後半では、勉強会開催のきっかけや反省点を書いていきます。
※ 記事の内容は個人の見解であり、所属組織の公式な見解ではありません。
スライド
スライドの概要
- 想定受講者は、Dockerの利用経験がない(or 少ない)Web デベロッパ
- 30分×5日で、
docker pull
から Docker Compose まで体験してもらう - 目標は、既存のプロジェクトでの Docker の利用を開始/拡大してもらうこと
おしながき
Day 5 以外の各回にはハンズオン・コーナーを設けています。
- Day 1: Hello Docker!
- Docker ってなによ?
- Docker をインストールする
- Docker を使ってみよう(👐ハンズオン)
- Day 2: コンテナ
- コンテナとイメージ
- コンテナを覗いてみよう(👐ハンズオン)
- コンテナ管理コマンド(👐ハンズオン)
- Day 3: Dockerfile
- Dockerfile とは
- Dockerfile の文法(👐ハンズオン)
- Dockerfile を使ってイメージを作成・コンテナを実行する(👐ハンズオン)
- Day 4: Docker Compose
- Docker Compose の意義
docker-compose.yml
の文法(👐ハンズオン)- Docker Compose の使い方(👐ハンズオン)
- Day 5: Docker を使った開発フロー
- 全体のふりかえり
- コンテナ開発のベストプラクティス
- 参考文献
開催の契機
社内には開発系部門が2つ(Web系部門と、私が所属するAI/GIS部門)があり、 部門間の技術スタックがぜんぜん違う、という状況でした。 そこで「経験・知識をお互いに共有する場があれば、業務の効率化/改善につながるんじゃないかな」という 動機で発案したのが、この社内勉強会です。
私が所属する研究開発部は「AI/GIS部門」と言いつつ、 インフラ/Webフロントエンド/バックエンドなども広く(浅く?)手がけており、 導入済みツールのなかには Web 系部門に展開できそうなものも多くありました。
そのなかでも、他の開発メンバーとの雑談で浮かび上がったペインポイント(環境構築に時間をとられがち)を解決でき、 しかも既存プロジェクトへの導入がしやすそうな Docker をトピックとしました。
…まぁ、このへんは普通の動機ですね。
ちなみに、昼休みに有志参加で社内勉強会を実施するのは、会社として初めての試みでしたし、 私自身も勉強会の企画/実行は初めてでした。
開催時期
昼休みの勉強会はいいぞ、という話をしましょう。
勉強会って「業務終了後に開催するもの」というイメージをお持ちの人も多いと思いますが、 「業務が忙しい」とか「業務が終わったら帰りたい/(業務外の事情で)帰らねばならない」などの理由で、 参加しづらい人が出てしまう、という課題もあります。 とくに、当社は社員数が少ない(現在25名)ので、1人でも多くの人が参加できるようにしないと、受講者ゼロという事態になりかねません。
そこで考えたのが「昼休みのうち30分を使う」という案。 ご飯を食べている間にラジオ感覚で聞いてもらえれば、気軽に参加できて参加率向上につながるのでは…と思いました。 Zoom でのオンライン配信(社内限定)も行い、リモート参加もできるようにしました。
実際に開催してみると、参加者はオン・オフ合計で6名。 全社員のうち約 1/4 に参加していただきました!
開催前の私は「3〜4人集まればいいかな…」と思っていましたが、予想より多くの人に参加いただけたのは嬉しかったです。
感想
WSL2 のインストール時トラブルが多かった
勉強会ではハンズオンも行うため、参加者には事前に WSL2 をインストールしてもらうことにしました。
Microsoft の公式ドキュメントを参照しながら、試しに私のPC(私物)へインストールしてみたところ、5分ほどで作業完了。 あっさりインストールできたので、参加者に手順を告知して、各自でインストールしてもらう形にしたのですが…。
半数以上の受講者でWSL2 のインストールに失敗しました。 再度インストールして上手くいったケースも多かったのですが、 原因究明が難航し、最終日まで WSL2 が起動せずハンズオンできなかった受講者もいました。申し訳ない!
おそらく、既存の仮想化ソフトウェア(VirtualBox)との衝突や、 Windows のバージョン(Win10組 vs 10→11の移行組 vs 11プリインストール組)の差異が原因では…と推測しています。
環境構築を楽にするツールを紹介するのに、そのインストールでつまづくことになるとは洒落にならない。 インストール時の不具合は事前にリサーチして、対策しておく必要があったのですが、後悔先に立たず…。
「業務への導入」という視点をもっと取り入れるべきだった
「実際の業務で導入するにはどうすればよいか」を十分カバーできていなかったのも反省点でした。 最終回に設けた質疑応答の時間で、受講者から「便利だとは思うが、既存業務に導入するにはハードルが高い」とのご意見もいただきました。
事前告知として社内チャットに流したフライヤーで「環境構築にまつわるお悩みを Docker で解決します!」と謳っていましたが、 単なる技術紹介に始終してしまい、実際の業務へ導入するにはどうするか、という目線での紹介ができていませんでした。
導入への抵抗感を低くするための方策——例えば開発環境や一部のコンポーネント(DBなど)から Docker 化することで、導入コストやリスクを抑える——を、ケーススタディ等も交えて紹介すればよかった、と反省しています。
▲少々オーバーな表現になった事前告知フライヤー(一部加工済み)
これから
話す内容をいろいろ増やすうちに、スライド125枚というボリュームになってしまいました。 今後はスライド数を減らしたり、日程を短くしたりして負荷を下げながら、持続可能な勉強会の開催スタイルを模索したいです。 (私以外の登壇者も確保したい…)
NTT Com様では社内勉強会を8年間続けていらっしゃるそうです。 長く続けられるようにしたいものです…。
また勉強会を開いたら、お知らせしたいと思います。