Docker のシステムへのインストール方法

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

はじめに

Docker は、開発者がアプリケーションを構築、デプロイ、管理する方法を革新した強力なコンテナ化プラットフォームです。このチュートリアルでは、システムに Docker をインストールし、最初の Docker コンテナを実行する方法を学びます。

Docker の理解

Docker は、開発者がコンテナ化された環境でアプリケーションを構築、デプロイ、実行できるようにする、人気のオープンソースプラットフォームです。コンテナは、アプリケーションの実行に必要なコード、ランタイム、システムツール、ライブラリなど、すべてを含んだ軽量で独立した実行可能なソフトウェアパッケージです。

Docker とは何か?

Docker は、コンテナを使用してアプリケーションの作成、デプロイ、実行を容易にするツールです。コンテナを使用すると、開発者はアプリケーションに必要なライブラリやその他の依存関係など、すべての構成要素をパッケージ化し、単一のソフトウェアパッケージとして配布できます。

Docker の利点

  1. 一貫性: Docker コンテナは、基盤となるインフラストラクチャに関係なく、アプリケーションが同じ方法で実行されることを保証します。
  2. スケーラビリティ: Docker は、必要に応じてアプリケーションをスケールアップまたはスケールダウンしやすく、リソースの利用効率を高め、コストを削減します。
  3. 移植性: Docker コンテナは、Docker がインストールされているシステムであればどのシステムでも実行できます。これにより、アプリケーションを異なる環境間で簡単に移動できます。
  4. 効率性: Docker コンテナは軽量で、仮想マシンよりも少ないリソースを使用するため、システム全体の性能が向上します。

Docker アーキテクチャ

Docker はクライアント・サーバーアーキテクチャを採用しており、Docker クライアントは Docker デーモンと通信します。Docker デーモンは、Docker コンテナの構築、実行、配布を担当します。

graph LD
    client[Docker クライアント]
    daemon[Docker デーモン]
    registry[Docker レジストリ]
    client -- API --> daemon
    daemon -- Pull/Push --> registry

Docker のコンポーネント

  1. Docker イメージ: Docker イメージは、Docker コンテナを作成するための設計図です。アプリケーションコード、依存関係、その他の必要なファイルを含んでいます。
  2. Docker コンテナ: Docker コンテナは、Docker イメージの実行インスタンスです。軽量、移植性があり、自己完結型です。
  3. Docker レジストリ: Docker レジストリは、Docker イメージの保存と配布システムです。最も一般的なレジストリは Docker Hub で、膨大な数の公開イメージをホストしています。

Docker の開始

Docker を開始するには、システムに Docker エンジンをインストールする必要があります。インストール手順は、オペレーティングシステムによって異なります。次のセクションでは、Linux システムへの Docker のインストール方法について説明します。

Docker のシステムへのインストール

このセクションでは、Ubuntu 22.04 システムに Docker をインストールする手順を案内します。

前提条件

始める前に、システムが以下の要件を満たしていることを確認してください。

  • Ubuntu 22.04 オペレーティングシステム
  • Docker のインストールおよび管理を行うためのルート権限または sudo 権限

ステップ 1: パッケージインデックスの更新

まず、システム上のパッケージインデックスを更新します。

sudo apt-get update

ステップ 2: Docker のインストール

apt が HTTPS 経由のリポジトリを使用できるように、必要なパッケージをインストールします。

sudo apt update
sudo apt-get install \
  ca-certificates \
  curl \
  gnupg \
  lsb-release

公式 Docker GPG キーを追加します。

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Docker リポジトリを設定します。

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker エンジン、containerd、Docker Compose パッケージをインストールします。

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

ステップ 3: インストールの検証

以下のコマンドを実行して、Docker が正しくインストールされていることを確認します。

sudo docker run hello-world

このコマンドは、テストイメージをダウンロードしてコンテナ内で実行し、Docker インストールが期待どおりに動作していることを確認します。

おめでとうございます!Ubuntu 22.04 システムに Docker を正常にインストールしました。次のセクションでは、最初の Docker コンテナの実行方法を説明します。

最初の Docker コンテナの実行

システムに Docker がインストールされたので、最初の Docker コンテナの実行方法を説明します。

コンテナの実行

Docker コンテナを実行するには、docker run コマンドを使用します。このコマンドは、指定されたイメージを Docker レジストリから(システムに既に存在しない場合)プルし、そのイメージに基づいて新しいコンテナを起動します。

まず、シンプルな "hello world" コンテナを実行してみましょう。

docker run hello-world

このコマンドは、Docker Hub レジストリから hello-world イメージをダウンロードし、そのイメージに基づいたコンテナを実行します。コンテナは "Hello from Docker!" というメッセージを表示し、その後終了します。

コンテナとの対話

実行中のコンテナと対話するには、さまざまな Docker コマンドを使用できます。

  • docker ps: 実行中のすべてのコンテナをリスト表示
  • docker stop <container_id>: 実行中のコンテナを停止
  • docker start <container_id>: 停止したコンテナを起動
  • docker exec -it <container_id> /bin/bash: 実行中のコンテナ内でシェルを開く

たとえば、実行中のコンテナ内でシェルを開くには、次のコマンドを使用できます。

docker exec -it < container_id > /bin/bash

これにより、コンテナ内のシェルプロンプトが表示され、コンテナのファイルシステムや実行中のプロセスを調べたり、対話したりできます。

カスタムイメージの構築と実行

既製のイメージを実行するだけでなく、独自の Docker イメージを作成することもできます。これを行うには、イメージの構築手順を含むテキストファイルである Dockerfile を作成する必要があります。

Dockerfile の簡単な例を次に示します。

FROM ubuntu:22.04
RUN apt-get update && apt-get install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

この Dockerfile は、Ubuntu 22.04 ベースイメージに基づいて新しいイメージを作成し、Nginx Web サーバーをインストールし、ポート 80 を公開し、コンテナの実行時に Nginx サービスを起動します。

イメージを構築するには、docker build コマンドを使用できます。

docker build -t my-nginx-app .

これにより、タグ my-nginx-app を持つ新しいイメージが作成されます。

このイメージに基づいてコンテナを実行するには、docker run コマンドを使用できます。

docker run -d -p 80:80 my-nginx-app

これにより、新しいコンテナが起動し、ホストのポート 80 がコンテナのポート 80 にマッピングされ、Nginx Web サーバーが実行されます。

おめでとうございます!これで、最初の Docker コンテナを実行し、それにインタラクトする方法を学びました。次のステップでは、独自の custom イメージの作成、コンテナネットワークの管理、マルチコンテナアプリケーションのデプロイなど、より高度な Docker の概念を学ぶことができます。

まとめ

このステップバイステップのガイドに従うことで、Docker とそのインストールプロセスに関する確かな理解を得ることができます。システムに Docker をセットアップし、最初のコンテナを実行し、コンテナ化の利点を理解できるようになります。このチュートリアルは、開発者、システム管理者、そして Docker の力を活用することに興味のあるすべての人にとって貴重なリソースです。