Dockerでは、Dockerfile → Dockerイメージ → Dockerコンテナという3段階のプロセスを経て、仮想環境上でアプリケーションを実行します。
この記事では、Dockerfile・Dockerイメージ・Dockerコンテナの関係性を整理したうえで、実際にDockerfileを作成し、コンテナとして起動するまでの手順を解説します。
Dockerfile・イメージ・コンテナの関係
コンテナを起動するまでには、3つの要素が関わります。それぞれの役割と関係性を理解することが、Docker活用の第一歩です。
Dockerfile
Dockerfileは、コンテナの構成を定義するテキストファイルです。ベースとなるOS、インストールするソフトウェア、実行するコマンドなどをコードとして記述します。
Dockerfileはコンテナの「設計書」に相当します。この設計書をもとに、Dockerイメージが生成されます。
Dockerイメージ
Dockerイメージは、Dockerfileをdocker buildコマンドでビルドして生成される、実行可能なパッケージです。OS・ライブラリ・アプリケーションなどの情報がレイヤー構造でまとめられています。
Dockerイメージはコンテナを生成するための「テンプレート(型)」に相当します。Dockerfile単体ではコンテナとして実行できず、必ずビルドしてイメージに変換する必要があります。
Dockerコンテナ
Dockerコンテナは、Dockerイメージをdocker runコマンドで実行した際に生成されるプロセスです。
1つのイメージから複数のコンテナを生成でき、それぞれが独立したプロセスとして動作します。コンテナの停止・削除もdocker stopやdocker rmコマンドで即座に操作可能です。
関係性のまとめ
以下の図は、Dockerfile → イメージ → コンテナの関係性を示しています。

| 要素 | 役割 | 操作 |
|---|---|---|
| Dockerfile | コンテナの設計書 | テキストエディタで作成 |
| Dockerイメージ | コンテナのテンプレート | docker buildで生成 |
| Dockerコンテナ | 実行中のプロセス | docker runで起動 |
Docker実践
ここからは、実際にDockerfileを作成し、コンテナとして起動するまでの流れを実践します。
前提条件: Dockerが使用可能な環境が必要です。ターミナルまたはコマンドプロンプトで
dockerコマンドが実行できることを確認してください。WindowsでのDockerインストール手順は、【Docker】WindowsでDocker Desktop環境を構築するを参照してください。
Dockerfileの作成
任意のディレクトリにDockerfile(拡張子なし)を作成し、以下の内容を記述します。
この例では、Ubuntuベースのコンテナにcurlをインストールし、起動時に「Hello, Ubuntu Docker!」と表示します。
# Ubuntuの最新イメージを使用
FROM ubuntu:latest
# 必要なパッケージをインストール(例: curl)
RUN apt-get update && apt-get install -y curl
# コンテナ起動時に表示するメッセージ
CMD ["echo", "Hello, Ubuntu Docker!"]各命令の意味は以下の通りです。
| 命令 | 説明 |
|---|---|
FROM | ベースとなるDockerイメージを指定する |
RUN | イメージのビルド時に実行するコマンドを定義する |
CMD | コンテナ起動時に実行するデフォルトコマンドを定義する |
Dockerイメージの作成
作成したDockerfileからDockerイメージを生成します。Dockerfileが存在するディレクトリで、以下のコマンドを実行します。
cd <<Dockerfileのディレクトリ>>
docker build -t main .-t mainはイメージにmainというタグ名を付与するオプションです。末尾の.は、現在のディレクトリをビルドコンテキストとして使用することを意味します。

ビルドが完了すると、Dockerfileに記述された内容に基づいてパッケージのインストール等が実行されます。
作成されたDockerイメージは、以下のコマンドで確認できます。
docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
main latest 62fb03104bed 4 minutes ago 219MBDockerコンテナの起動
作成したイメージからコンテナを起動します。以下のコマンドを実行すると、コンテナが作成・実行され、CMDで指定したコマンドの結果が出力されます。
docker run mainHello, Ubuntu Docker!作成されたコンテナの一覧は、以下のコマンドで確認できます。-aオプションにより、停止中のコンテナも含めて表示されます。
docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
910054399d3e main "echo 'Hello, Ubuntu…" 2 seconds ago Exited (0) 1 second ago upbeat_elgamalコンテナの起動・停止
作成済みのコンテナを再度起動するには、docker startコマンドを使用します。コンテナの指定は、コンテナIDまたはコンテナ名で行います。
# コンテナの再起動
docker start <<コンテナID / コンテナ名>>
# コンテナの停止
docker stop <<コンテナID / コンテナ名>>ポイント: 上記の
hello-worldのようなコマンド実行後に自動終了するコンテナには、docker stopは不要です。docker stopは、Webサーバなど継続的に動作するコンテナを停止する際に使用します。
まとめ
この記事では、Dockerfileの作成からコンテナ起動までの一連の流れを解説しました。
- Dockerfileはコンテナの設計書。OS・ソフトウェア・実行コマンドを定義する
- Dockerイメージは
docker buildで生成されるテンプレート - Dockerコンテナはイメージを
docker runで実行した際に生成されるプロセス - 1つのイメージから複数のコンテナを起動でき、停止・削除も容易
Docker Hubには多数の公式イメージが公開されていますが、独自の要件に合わせたコンテナを構築する場合は、Dockerfileの自作が必要になります。基本的な流れを理解したうえで、用途に応じたDockerfileのカスタマイズに進めていきましょう。