はじめに
Docker は、開発者がアプリケーションを構築、デプロイ、管理する方法を革新した強力なコンテナ化プラットフォームです。このチュートリアルでは、システムに Docker をインストールし、最初の Docker コンテナを実行する方法を学びます。
Docker の理解
Docker は、開発者がコンテナ化された環境でアプリケーションを構築、デプロイ、実行できるようにする、人気のオープンソースプラットフォームです。コンテナは、アプリケーションの実行に必要なコード、ランタイム、システムツール、ライブラリなど、すべてを含んだ軽量で独立した実行可能なソフトウェアパッケージです。
Docker とは何か?
Docker は、コンテナを使用してアプリケーションの作成、デプロイ、実行を容易にするツールです。コンテナを使用すると、開発者はアプリケーションに必要なライブラリやその他の依存関係など、すべての構成要素をパッケージ化し、単一のソフトウェアパッケージとして配布できます。
Docker の利点
- 一貫性: Docker コンテナは、基盤となるインフラストラクチャに関係なく、アプリケーションが同じ方法で実行されることを保証します。
- スケーラビリティ: Docker は、必要に応じてアプリケーションをスケールアップまたはスケールダウンしやすく、リソースの利用効率を高め、コストを削減します。
- 移植性: Docker コンテナは、Docker がインストールされているシステムであればどのシステムでも実行できます。これにより、アプリケーションを異なる環境間で簡単に移動できます。
- 効率性: Docker コンテナは軽量で、仮想マシンよりも少ないリソースを使用するため、システム全体の性能が向上します。
Docker アーキテクチャ
Docker はクライアント・サーバーアーキテクチャを採用しており、Docker クライアントは Docker デーモンと通信します。Docker デーモンは、Docker コンテナの構築、実行、配布を担当します。
graph LD
client[Docker クライアント]
daemon[Docker デーモン]
registry[Docker レジストリ]
client -- API --> daemon
daemon -- Pull/Push --> registry
Docker のコンポーネント
- Docker イメージ: Docker イメージは、Docker コンテナを作成するための設計図です。アプリケーションコード、依存関係、その他の必要なファイルを含んでいます。
- Docker コンテナ: Docker コンテナは、Docker イメージの実行インスタンスです。軽量、移植性があり、自己完結型です。
- 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 の力を活用することに興味のあるすべての人にとって貴重なリソースです。



