TL;DR
- 「最短でプロダクションで扱うため」のコンセプトはそのままに 入門 Docker がv2になりました
- 5年ぶりにのアップデートで、古くなった情報を消し最新の情報の追加をしてほぼ書き直しました。
- 現代でも残ってしまっているような古いプラクティスについても言及しているので、再読もオススメです。
概要
入門 Docker を5年ぶりにアップデートしました。
deprecatedな部分だけは綺麗にするかと思い、git cloneしたところ筆が乗りだいぶ様変わりしてv2になりました。
変更点
古くなってしまっている情報を修正したことがメインです。
特に以下3点です。
1. DockerfileのDSL
2. compose v2対応
3. Dockerfileのベストプラクティス
他にもいくつか。
現在でも使用されている非推奨な使い方への言及
古くなってしまっているが、現在でも使用されているプラクティスに対しても言及しました。
この資料で入門した方が既存のプロダクトで更新されたプラクティスに追従する際、レビューなどで指摘された際にこの資料を雑に投げて解決できると良いなと思った次第です。
サンプルコードをリポジトリに追加
alpineイメージを使用しているポイントを書き直し、slimやdistrolessに変更しました。
また、それぞれのサンプルコードと、 実際のコードをリポジトリに追加 しました。
introduction-docker/handson at main · y-ohgi/introduction-docker
docker buildxに対応
主にマルチプラットフォームビルドについて言及しました。
ファイルシステムの変更
UnisionFSからOverlayFS2に変更された点について言及しました。
OverlayFS2では中間レイヤーを意識しなくて良くなった点など、新しく画像を作って説明しています。
意識した点
この資料の 「Dockerの入門からプロダクションで活用するプラクティス」 というテーマは我ながら気に入っており、ここを守ることを特に意識しました。
そのため資料のシンプルさを意識しつつ、プラスアルファでベストプラクティスをコードベースで表現しました。
また、Dockerを利用してて感じることでもあるのですが、Dockerは知識の更新せずに使用できるツールだと思っています。
コンテナの利用者はコンテナではなくコンテナオーケストレーションツールや周辺ツールに対して次の意識が向くのかなと自戒を込めて。
古くなってしまっているが使用可能なため、新しいプラクティスが取り込まれずに使われていることを多くめにしました。
そのプラクティスのギャップを埋められるよう、そして入門した人が古いプラクティスと認識できるよう学習できるよう意識しました。
あとはURLを変えないことです。
ブックマークしてくださっている方が居ると思いリネームしたい気持ちを抑えるなどです。とはいえいくつか変えました。
なぜ書き直したのか
正直このまま塩漬けするつもりでした!てへぺろ。
書き直したきっかけは色々あるのですが、 他人に自分の資料をすすめられなくなった ことが一番の理由でしょうか。
5年前の情報でdeprecatedなものや、新しく素晴らしい機能が増え、むしろアンチパターンな資料になっている箇所があったことも否めません。
とはいえ5年前だしバージョン情報書いてるし、アンチパターンでも時効だろうと思い重い腰が上がりませんでした。
5年前と比較してDockerはデファクトスタンダードになり、世の中にDockerを学ぶための資料が増えましたしね。公式ドキュメントの日本語訳も充実しています。
ということで、誰かのDocker入門資料としてまた人にすすめられるよう書き直したりしました。
誰かに読んでもらいたいので、カジュアルに勉強会とかするので良ければ呼んでください是非ぜひ
まとめ
思ったより筆が乗ってほとんど書き直しちゃいました。
また、アンラーンの機会にも繋がり、自分自身の学習になりました。
改めて誰かの役に立つ資料になれたかなと思うので、読んでもらえると嬉しいです。
需要があればこの資料をベースに勉強会もやりますよ!
お気軽に御社にお呼びくださいなー。色んなエンジニアさんと交流したいので、勉強会自体は無料で色んな会社さんに遊びに行かせてくださいなー
また、JAWS-UG東京支部の運営をやっていまして、勉強会でお金貰うことに抵抗があるのもあります(JAWS-UGには「No Job, No Sell」のルールがあったりします)。
JAWS-UG東京支部もよろしくね!
JAWS-UG東京 - connpass