web-dev-qa-db-ja.com

Docker ServiceとDocker Containerの違いは何ですか?

いつdocker service createコマンドを使用し、いつdocker runコマンドを使用しますか?

48
Kunal Sehegal

要するに:Dockerサービスは、Dockerコンテナが実行されるようにDocker swarmを使用してマスターノードを設定したときに主に使用されます分散環境で、簡単に管理できます。

Docker run:docker runコマンドは、まず指定されたイメージ上に書き込み可能なコンテナーレイヤーを作成し、次に指定されたコマンドを使用してそれを開始します。

つまり、docker runはAPI/containers/create、次に/ containers /(id)/ startと同等です

ソース: https://docs.docker.com/engine/reference/commandline/run/#parent-command

Dockerサービス:Dockerサービスは、より大きなアプリケーションのコンテキスト内のマイクロサービスのイメージになります。サービスの例には、HTTPサーバー、データベース、または分散環境で実行する他の種類の実行可能プログラムが含まれます。

サービスを作成するとき、使用するコンテナイメージと、実行中のコンテナ内で実行するコマンドを指定します。次のようなサービスのオプションも定義します。

  • swarmがSwarmの外部でサービスを利用可能にするポート
  • swarm内の他のサービスに接続するサービスのオーバーレイネットワーク
  • CPUおよびメモリの制限と予約
  • ローリング更新ポリシー
  • swarmで実行するイメージのレプリカの数

ソース: https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/#services-tasks-and-containers

26
Viswesn

dockerサービスは新しいdocker run 」と読むことができます。

これらのスライドによると、「docker service create」は「進化した」ドッカー実行に似ています。 コンテナをDocker Swarmにデプロイする する場合は、「サービス」を作成する必要があります。

15
Tristan

Dockerサービスは、コンテナの「設計図」のようなものです。できます単純なワーカーをサービスとして定義し、そのサービスを20個のコンテナーに拡張して、キューを非常にすばやく通過します。その後、そのサービスを再び3つのコンテナーに縮小します。また、Swarmを介して、これらのコンテナをSwarmの異なるノードにデプロイできます。

しかし、@ Tristanが提案したように、ドキュメントも読むことをお勧めします。

11

Docker runは単一のコンテナーを開始します。

Dockerサービスを使用すると、コンテナのグループを(同じイメージから)管理できます。それらをスケーリングする(複数のコンテナーを開始する)か、更新することができます。

8
Julian
  • docker runstandaloneコンテナを作成するために使用されます
  • docker service createは、クラスター内で実行されているそのサービスのインスタンス(tasks)(swarm)のコンピューター(nodesと呼ばれる)。これらのタスクはコースのコンテナですが、ではなくスタンドアロンコンテナです。ある意味で、サービスは、タスクをインスタンス化するときにテンプレートとして機能します。

例えば

docker service create --name MY_SERVICE_NAME --replicas 3 IMAGE:TAG

iMAGE:TAGイメージに基づくMY_SERVICE_NAMEサービスの3つのタスクを作成します。

詳細については、こちらをご覧ください こちら

4
Teo Bebekis