Docker のインストール確認

DockerBeginner
オンラインで実践に進む

はじめに

Docker は、コンテナを構築・実行するためのプラットフォームです。コンテナは、アプリケーションと、その実行に必要なファイルやライブラリをまとめてパッケージ化します。そのため、異なる環境でもアプリケーションがより一貫して動作します。

コンテナは、完全な仮想マシンとは異なります。コンテナはプロセスとファイルシステムの見え方を分離しながら、ホストのカーネルを共有します。このため、一般的にコンテナは仮想マシンよりも高速に起動し、使用するリソースも少なくなります。

コンテナが広く使われるようになった背景には、開発者や運用担当者が「あるマシンでは動作するのに、環境が異なる別のマシンでは動作しない」という問題にたびたび直面していたことがあります。コンテナは、アプリケーションのパッケージ化と起動方法を標準化することで、この環境差による不一致を減らします。

この実験では、Docker 環境のヘルスチェックを実施します。コンテナを本格的に使用する前に、Docker Engine がインストールされていること、クライアントが Docker Engine と通信できること、そしてテストイメージを正常に実行できることを確認することが重要です。

次の項目を確認します。

  • インストールされている Docker のバージョンを確認する。
  • テストコンテナを実行し、システムがイメージをダウンロードして実行できることを確認する。
  • コンテナの状態を確認し、コンテナのライフサイクルを理解する。

Docker のバージョンを確認する

Docker 環境を確認する最初のステップは、Docker のコマンドラインインターフェース(CLI)にアクセスできるかどうかを確認することです。これにより、システムの PATH から docker コマンドを利用できることを確認できます。

この確認で証明できるのは、クライアントツールが存在することだけです。バックグラウンドで動作する Docker Engine が正常であることや、コンテナを実際に実行できることまでは、まだ確認できません。

ターミナルを開き、次のコマンドを実行します。

docker --version

出力例:

Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3

出力には、インストールされている Docker のバージョンとビルド情報が表示されます。バージョン番号が表示されれば、Docker クライアントが正常にインストールされ、コマンドを受け付ける準備ができています。

テストコンテナを実行する

Docker クライアントを利用できることを確認できたので、次に、Docker Daemon(コンテナを管理するバックグラウンドサービス)が実行中で、コンテナを起動できることを確認します。

このクライアントとデーモンの分離は、Docker の中心的な仕組みです。入力する docker コマンドはクライアントであり、イメージの取得、コンテナの作成、ライフサイクルの管理といった実際の処理はデーモンが行います。

ここでは、公式の hello-world イメージを使用します。この最小構成のイメージは、インストール状態をテストするために特別に設計されています。

ターミナルで次のコマンドを実行します。

sudo docker run hello-world

なぜ sudo を使用するのでしょうか?

Docker デーモンは Unix ソケットを介して通信します。デフォルトでは、このソケットの所有者は root ユーザーです。そのため、他のユーザーは sudo を使用しなければアクセスできません。

このコマンドを実行すると何が起こるのでしょうか?

  1. ローカルを確認: Docker は、ローカルマシンに hello-world イメージが存在するか確認します。
  2. 取得: ローカルに見つからない場合、Docker は Docker Hub(パブリックレジストリ)からイメージをダウンロード(取得)します。
  3. 実行: Docker はそのイメージから新しいコンテナを作成し、実行します。

この一連の流れから、イメージとコンテナの違いも理解できます。イメージは再利用可能なテンプレートであり、コンテナはそのテンプレートから作成された、実行中または停止中のインスタンスです。

コンテナの出力と状態を確認する

このステップでは、前のコマンドの出力を確認し、コンテナが正常に実行されたことを検証します。

sudo docker run hello-world を実行すると、次のようなメッセージが表示されます。

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

このメッセージは、Docker の一連の処理、つまり Client、Daemon、Registry、Container がすべて正常に機能していることを示します。

hello-world コンテナは、このメッセージを表示した直後に終了するように設計されています。実行を停止した後も、コンテナ自体はシステム上に残ります。停止したコンテナも含めてすべてのコンテナを一覧表示すれば、これを確認できます。

これは、コンテナのライフサイクルを理解するための重要な最初の例です。コンテナは、Exited 状態でも存在できます。Docker では、「実行中であること」と「存在していること」は関連していますが、同じ意味ではありません。

次のコマンドを実行します。

sudo docker ps -a
  • ps:コンテナを一覧表示します。
  • -a(または --all):実行中のコンテナだけでなく、すべてのコンテナを表示します。

出力に hello-world が表示され、状態が Exited になっていることを確認できます。これにより、コンテナが作成され、実行され、タスクを正常に完了したことが分かります。

まとめ

この実験では、Docker のインストール状態を正常に確認しました。次の操作を学びました。

  • Docker のバージョンを確認し、CLI ツールがインストールされていることを確認する。
  • hello-world コンテナを実行し、Docker デーモンへの接続とイメージの取得能力をテストする。
  • 出力を確認し、コンテナの履歴を一覧表示して、コンテナが実行されたことを検証する。

これらの確認が完了したら、環境はより高度な Docker 操作を行う準備ができています。