著者の一言
本書はコンテナ技術に始めて触れる方を対象に、DockerとKubernetesの基本的な機能の概要を、コンテナの仕組みをふまえつつとらえられるようにすることを目指しました。各ツールが持つ基本的な機能に加えて、コンテナの構造や、DockerとKubernetesがコンテナを作る仕組みの概要も紹介します。
一般にあまり焦点を当てて取り上げられることは多くありませんが、「コンテナランタイム」というソフトウェアも本章で扱う中心的なトピックの1つです。コンテナランタイムはコンテナ技術における最も基礎的なソフトウェアといえます。その重要な役割に「コンテナを作り出し管理すること」があります。Docker・Kubernetesのどちらも、コンテナを作成・管理するためにコンテナランタイムを内部で用いており、コンテナ技術における縁の下の力持ちのような役割を担っています。このコンテナランタイムや、それから作り出されるコンテナの構造への基本的な知識は、本書で扱っていないDocker・Kubernetesの機能や、他のコンテナ関連ツールを学ぶ際にも、その理解の助けになるでしょう。
また、文章やコマンドだけではイメージしづらい概念については、なるべく図を用いて、それらを視覚的にとらえられるよう心掛けました。
本書が皆様のコンテナライフスタートの一助となることを願ってやみません。
改訂版について
本書は、2020年に出版された『イラストでわかるDockerとKubernetes』の改訂版です。第1版からのコンセプトはそのままにしつつ、本改訂版では、最新動向(Docker 24、Kubernetes 1.27、runc 1.1.9、Ubuntu 22.04)に合わせて内容を更新しました。また、頻出機能の紹介を充実させたり、例を追加することで説明をわかりやすくするなど、内容の改善も行いました。
各章に施された変更のうち主要なものは次のとおりです。
第1章では、コンテナ技術の基礎的な要素の1つであるイメージについて、その概要を説明する節を加えました。
第2章では、Dockerの頻出機能であるボリューム、ポート公開、Compose、マルチステージビルドなどの説明を追加しました。また、Dockerfileの説明については、Docker 23からデフォルトのビルダになった「BuildKit」を前提とした内容に更新し、並列マルチステージビルドの紹介も加えました。
第3章では、Kubernetes 1.24にてkubeletからDockerを操作する機能(dockershim)が削除されたことを反映し、KubernetesとDockerの関係を整理しつつ内容を更新しました。
また、Kubernetesの各機能の紹介については、第1版と同様に図を用いながら、マニフェスト例も増やすことでより具体的な説明にしました。
第4章では、コンテナのリソース管理に利用されるLinuxの機能「cgroup」について、利用の広がる「cgroup v2」の紹介を追加しました。また、高レベルランタイムとしてPodmanの紹介も追加しています。