教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
Dockerは、コンテナ技術を使ったアプリケーションの実行環境を構築・運用するためのプラットフォームです。アプリケーションの実行に必要なものを1つにまとめ、Dockerイメージとして管理することで、アプリケーションの可搬性を上げることができます。この章では、コンテナ技術とDockerの概要、Dockerが動作する仕組みについて説明します。
Dockerについて学ぶうえで、背景にあるコンテナ技術がどのようなものであるかを解説します。
コンテナとは、ホストOS上に論理的な区画(コンテナ)を作り、アプリケーションを動作させるのに必要なライブラリやアプリケーションなどを1つにまとめ、あたかも個別のサーバーのように使うことができるようにしたものです。
ホストOSのリソースを論理的に分離し、複数のコンテナで共有して使います。コンテナはオーバーヘッドが少ないため。軽量で高速に動作するのが特徴です。
コンテナ技術を使うと、OSやディレクトリ、IPアドレスなどのシステムリソースを、個々のアプリケーションがあたかも占有しているように見せることができます。
コンテナは、アプリケーションの実行に必要なモジュールをコンテナとしてまとめることができるため、複数のコンテナを組み合わせて1つのアプリケーションを構成するマイクロサービス型のアプリケーションと親和性が高いのが特徴です。
Dockerでは、コンテナを作成するためのライブラリやアプリケーションの情報をまとめたDockerイメージをもとにコンテナを作成します。(下図)
以降でDockerイメージ(又は単にイメージ)といった場合は、コンテナのもとになる情報を持ったDockerイメージのことを指します。