docker
とdocker-compose
は同じdockerFileと相互作用しているようですが、2つのツールの違いは何ですか?
docker
cliは、dockerエンジン上の個々のコンテナを管理するときに使用されます。 docker daemon apiにアクセスするのはクライアントのコマンドラインです。
docker-compose
cliを使用して、マルチコンテナアプリケーションを管理できます。また、docker run
cliで入力する多くのオプションをdocker-compose.yml
ファイルに移動して再利用しやすくしています。これは、docker
で使用されているのと同じdocker apiの上にあるフロントエンドの "スクリプト"として機能するので、docker-compose
がdocker
コマンドおよび多くのシェルスクリプトを使ってできることはすべて実行できます。詳しくは docker-compose のこのドキュメントを参照してください。
スウォームモード用の更新
この回答が投稿されてから、dockerはdocker-compose.ymlファイルの2回目の使用を追加しました。 バージョン3のymlフォーマット およびdocker 1.13から始めて、docker-composeでymlを使用したり、dockerのswarmモードでスタックを定義したりすることもできます。後者を行うには、docker stack deploy -c docker-compose.yml $stack_name
の代わりにdocker-compose up
を使用してから、docker-compose
コマンドの代わりにdocker
コマンドを使用してスタックを管理する必要があります。マッピングは、2つの用途の間のマッピングです。
スウォームモードの詳細については、 docker's swarm mode documentation を参照してください。
docker
は単一コンテナーを管理します
docker-compose
は複数のコンテナアプリケーションを管理します
docker-composeを使うには3つのステップが必要です。
docker-compose up
を実行します。以下は、 docker docs からのdocker-compose.ymlの例です。
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}