Docker用語メモ
参考にさせていただきました
イメージ
コンテナを作成するための指示が記載された読み取り専用のテンプレートです。
イメージを実行すると、1 つまたは複数のコンテナインスタンスになります。
コンテナ
アプリケーションを実行する分離された環境です。
コンテナは Linux でネイティブに稼働し、ホストマシンのカーネルを共有するため、軽量で、他の実行可能ファイルに比べメモリを使用しません。
なおカーネルはアプリケーションの代わりにCPUやメモリとのやり取りを行ってくれます。
ボリューム
ボリュームとは、Docker コンテナにおいて生成され利用されるデータを、永続的に保持する目的で利用される仕組みです。ホストマシンにデータが保存されるので、コンテナを停止してもデータが消えない。
ボリュームには名前付きボリュームと匿名ボリュームがある。
Dockerfile
公開されているDockerイメージをそのまま使うのではなく、必要なパッケージやアプリ、各種設定を含んだDockerイメージを自分で作成して使用するケースが出てきます。その場合、Dockerfileを作成し、それを使用して必要なDockerイメージを作成することができます。Dockerfileには、ベースとするDockerイメージに対して実行する内容を記述します。
Docker Engine
Docker Engine が 【 1部: 仮想化とは 】 で紹介したコンテナ型仮想化ソフトウェアの部分です。
これによりアプリケーションをコンテナとして扱うことができるようになります。Docker のコンテナは Linux のカーネルと機能を使って動いているため、Docker Engine は Linux でしか動きません。
要約すると コンテナを乗せる部分 で、Linux で動く ソフトウェアです。
Docker デーモン
Docker デーモンはコンテナを管理するために常駐するプロセスです。Docker はデーモンもクライアントも同じバイナリを使います。デーモンを起動するには docker daemon を入力します。
Docker マシーン
Docker Machine は仮想マシン上に Docker Engine をインストールするツールであり、 docker-machine コマンドを使ってホストを管理します。Machine を使えば、自分のローカルの Mac や Windows 上に Docker ホストを作れるだけでなく、あなたの会社のネットワーク上や、データセンターや、AWS や Digital Ocean のようなクラウド・プロバイダ上でも作れます。
Docker スワーム
Docker Swarm は Docker に対応するネイティブなクラスタリング用ツールです。Docker Swarm は標準 Docker API で操作できます。そのため、Docker ホスト群を集め、1つの仮想 Docker ホストとして扱えます。既に Docker デーモンと通信可能なツールであれば、Swarm を使うだけで、意識せずに複数のホストにスケール可能になります。以下のツールをサポートしていますが、これだけに限りません。
Docker Compose
複数コンテナのアプリケーションを定義・共有するために役立つように、開発されたツールです。Compose があれば、サービスを定義する YAML ファイルを作成し、コマンドを1つ実行するだけで、瞬時にすべて立ち上げたり、すべてを削除したりできます。
docker compose
またはdocker-compose
コマンドで操作する
コマンド実行時には、カレントディレクトリのcompose.yaml
やdocker-compose.yaml
を参照する
ダウンロードするバージョンによって結構変わるので注意(後方互換はある)
compose.yaml
で設定できるプロパティ↓