Dockerのコンテナとは?

—

by

in

Dockerコンテナの概要

Dockerコンテナは、アプリケーションとその実行に必要なすべての依存関係(ライブラリ、設定ファイル、環境変数など)を一つにまとめた軽量な実行環境です。

仮想マシンとの違い

仮想マシンはハイパーバイザー上で完全なOSをエミュレートしますが、DockerコンテナはホストOSのカーネルを共有し、必要なプロセスだけを分離します。そのため、起動が速く、リソース消費も少なくなります。

コンテナの主な特徴

  • 軽量性:OS全体を持たないため、イメージサイズが小さく高速に起動できる。
  • 移植性:同一のイメージをどの環境でも同じように実行できる。
  • 隔離性:プロセス、ネットワーク、ファイルシステムが分離され、他のコンテナやホストに影響を与えにくい。

基本的な用語

  • イメージ:コンテナを作成するためのテンプレート。Dockerfileで定義し、ビルドして生成する。
  • コンテナ:実行中のイメージインスタンス。 docker run コマンドで起動する。
  • レジストリ:イメージを保存・配布するリポジトリ。Docker Hub が代表的。

コンテナの作成・実行例

# Dockerfileの例
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

# イメージビルド
docker build -t myapp:latest .

# コンテナ起動
docker run -d -p 8000:8000 myapp:latest

上記のように、Dockerfileで環境を定義し、docker build でイメージを作成、docker run でコンテナを実行します。Dockerは開発・テスト・本番環境を同一の形で提供できるため、デプロイの一貫性を高める重要なツールです。