dockerとdocker-composeの違いは何ですか


237

dockerそして、docker-compose同じdockerFileと対話しているようだ、2つのツールの違いは何ですか?

回答:


270

dockerドッキングウィンドウエンジンで個々の容器を管理する場合、CLIが使用されます。DockerデーモンAPIにアクセスするためのクライアントコマンドラインです。

docker-composeCLIは、マルチコンテナアプリケーションを管理するために使用することができます。また、docker runCLIで入力するオプションの多くをdocker-compose.ymlファイルに移動して、再利用を容易にします。で使用されているのと同じdocker apiの上でフロントエンドの「スクリプト」として機能するdockerためdocker-composedockerコマンドや多くのシェルスクリプトを使用してすべての操作を実行できます。詳細については、docker-composeに関するこのドキュメントを参照してください。


スウォームモードの更新

この回答が投稿されてから、dockerはdocker-compose.ymlファイルの2番目の使用法を追加しました。以降では、バージョン3 YML形式とドッキングウィンドウ1.13、あなたはドッキングウィンドウ・コンとYMLを使用することができ、また、ドッキングウィンドウの群れモードでスタックを定義します。後者を実行するには、docker stack deploy -c docker-compose.yml $stack_name代わりにを使用docker-compose upして、dockerコマンドではなくコマンドでスタックを管理する必要がありdocker-composeます。マッピングは、2つの用途の間の1つです。

  • Compose Project-> Swarm Stack:特定の目的のためのサービスのグループ
  • Compose Service-> Swarm Service:1つのイメージとその構成、場合によってはスケールアップ。
  • Compose Container-> Swarm Task:サービス内の単一のコンテナー

スウォームモードの詳細については、Dockerのスウォームモードのドキュメントをご覧ください。


76

docker 単一のコンテナを管理します

docker-compose 複数のコンテナアプリケーションを管理します

docker-composeの使用には3つのステップが必要です。

  1. Dockerfileを使用してアプリ環境を定義する
  2. docker-compose.ymlでアプリサービスを定義する
  3. 実行docker-compose upしてアプリを起動および実行する

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: {}

3
明瞭化のために、ライン build: .におけるwebDockerfileの位置に断面点は、ステップ1で作成した
AndrewGentry
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.