0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#0075(2024/03/23)DockerのContext

Last updated at Posted at 2025-03-23

DockerのContext(コンテキスト)とは?

Dockerでイメージをビルドする際に頻繁に使われる用語のひとつが Context(コンテキスト) です。本記事では、Dockerのコンテキストとは何か、どのような役割を持つのかについて詳しく解説します。


🔹 DockerのContextとは?

Dockerにおける Context(コンテキスト) は、DockerイメージをビルドするときにDockerデーモンに送信される「ファイルやディレクトリ群」を指します。

Dockerイメージのビルドコマンドの基本的な形は以下です。

docker build [option] <コンテキストのパス>

この「コンテキストのパス」に指定されたディレクトリ以下のファイル群が、Dockerデーモンに送信され、ビルド処理に使用されます。

🔹 Dockerデーモンとは?

Dockerデーモン(Docker Daemon)とは、Dockerのコマンドを処理し、コンテナやイメージの作成、管理、実行などを担うバックグラウンドプロセスです。ユーザーはDockerクライアントを通じてDockerデーモンと通信し、さまざまな処理を指示します。

  • 主な役割
    • Dockerイメージのビルド
    • Dockerコンテナの起動・停止・管理
    • Dockerネットワークやボリュームの管理

Dockerの動作には必ずDockerデーモンが必要であり、通常、システム起動時に自動的に起動します。


🔹 Contextが必要な理由

Dockerfileに記述する命令(COPYADD)では、コンテキスト内のファイルだけが対象になります。これによりDockerビルドプロセスは、必要なファイルのみを明確に識別し、安全かつ効率的にイメージを作成できます。

主なメリット:

  • 明示的に利用可能なファイルを指定し、安全なビルドが可能。
  • 不要なファイルがイメージに含まれるのを防ぎ、効率的に管理。

🔹 Contextの具体的な例

例えば、以下のようなプロジェクトディレクトリがあるとします。

myapp/
├── Dockerfile
├── app.py
├── requirements.txt
└── static/
    └── logo.png

この場合、myappディレクトリをコンテキストに指定し、Dockerビルドを実行できます。

docker build -t myimage ./myapp

このときDockerfileの中では次のように記述します。

FROM python:3.11

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY app.py .
COPY static/logo.png static/logo.png

CMD ["python", "app.py"]

Dockerfile内の各ファイルは、コンテキスト内に存在する必要があります。


🔹 コンテキストを設定する際の注意点

  • サイズを抑える:コンテキストが大きすぎるとDockerデーモンへの送信が遅くなり、ビルド時間が増えます。
  • セキュリティを考慮:重要な認証情報や環境変数などを不用意にコンテキストに含めないよう注意します。
  • 不要なファイルを除外するためには、.dockerignoreファイルを使用します。

.dockerignoreの例

*.log
__pycache__
node_modules
.env

🔹 まとめ

Dockerのコンテキストとは、Dockerイメージを作成する際にDockerfileから参照可能なファイルやディレクトリの範囲を定義する重要な概念です。正しいコンテキスト設定により、Dockerイメージのビルドを安全かつ効率的に行うことができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?