コンテナとは

アプリケーション (厳密にはプロセス) を、システムの他の部分から分離したもの。プロセスを実行するために必要なファイルは、全てイメージから読み込まれる。
https://www.redhat.com/ja/topics/containers/whats-a-linux-container

イメージとは

コンテナを実行するために必要なファイルをまとめたもの。コンテナ内で動作するアプリケーションのランタイムや設定ファイルなどが含まれます。

メリット

  • カーネル (OS の中核) は共有するので、仮想環境と比べて一般に使用リソースは少ない。
  • カーネルに互換性があれば、コンテナはどの環境でも同じように実行できる。

デメリット (というより注意点)

  • 完全な仮想化とは異なるため、セキュリティの対策は必要。
  • カーネルの互換性が無いシステム (Windows Subsystem for Linux など) では実行できない。

Docker とは

コンテナを扱うためのプラットフォーム。コンテナやイメージそのものはもちろん、コンテナへのネットワークの割り当てなどもやってくれる。Docker Hub には既に作られているイメージが配布されており、それらを再利用できる。

Docker イメージの作り方

Dockerfile でコンテナ内で実行されるものを定義します。どのファイルをイメージに含めるか、どのようなネットワークを割り当てるか、どのようなコマンドを実行するかなどを記述します。
チュートリアル / リファレンス

Docker コマンド

docker run <image>

このコマンドでは、イメージを指定してコンテナを起動します。ローカルにイメージがある場合はローカルのものを、見つからない場合は Docker Hub からダウンロードします。

docker build <directory>

指定したディレクトリ内の Dockerfile を使用して、イメージを作成します。

docker ps

コンテナの一覧を表示します。

docker images

ローカルにあるイメージの一覧を表示します。

docker help

使用できるコマンドの一覧と説明を表示します。

Docker Compose とは

アプリケーションが複数のコンテナから作られているとき、それらを1つずつ管理するのは手間です。Docker Compose では、設定ファイルに複数のサービスを定義して、コンテナをまとめて管理できます。

docker-compose.yml

Docker Compose のサービス定義は docker-compose.yml に記述します。
リファレンス

Docker Compose コマンド

docker-compose build

現在のディレクトリにある docker-compose.yml を参照して、イメージを作成します。

docker-compose up

現在のディレクトリにある docker-compose.yml を参照して、コンテナとネットワークを起動します。イメージが作成されていない場合は、自動的にビルドします。

docker-compose down

現在のディレクトリにある docker-compose.yml を参照して、コンテナとネットワークを停止・削除します。

共有 Twitter で共有 Facebook で共有 URL をコピー

JavaScript を有効にしてください