Разница между сервисом Docker и контейнером Docker - PullRequest
0 голосов
/ 01 января 2019

Я могу создать Docker-контейнер по команде

docker run <<image_name>>

Я могу создать сервис по команде

docker service create <<image_name>>

В чем разница между этими двумя в поведении?

Когда мне нужно будет создать службу поверх контейнера?

Ответы [ 2 ]

0 голосов
/ 01 января 2019
Команда

docker service в Docker Swarm заменяет docker run.docker run был создан для решений с одним хостом.Вся его идея заключается в том, чтобы сосредоточиться на локальных контейнерах в системе, с которой он говорит.В то время как в кластере отдельные контейнеры не имеют значения.Мы просто используем сервисы swarm для управления несколькими контейнерами в кластере.Swarm организует для нас контейнеры с услугами.

docker service create в основном используется в режиме роя докера .docker run не имеет понятия масштабирования вверх / вниз.С помощью docker service create вы можете указать количество создаваемых реплик с помощью команды --replicas.Это создаст и будет управлять несколькими репликами контейнеров в разных узлах.Существует несколько таких опций для управления несколькими контейнерами с помощью docker service create и других команд в docker service ...

Еще одно примечание: службы докеров предназначены для систем управления контейнером (рой).Он имеет встроенные средства для восстановления после сбоев.то есть.он воссоздает контейнер при сбое.docker run никогда не будет воссоздавать контейнер, если он потерпит неудачу.Когда используются команды docker service, мы напрямую не просим выполнить какое-либо действие, такое как «создать отдельный контейнер», скорее мы говорим системе оркестровки «поместить это задание в вашу очередь, и когда вы сможете добраться до него, выполните это действие».на рой ".Это означает, что в него встроены средства отката, уменьшение сбоев и множество интеллектуальных возможностей.

Вам следует рассмотреть возможность использования docker service create в режиме роя и docker run, когда не в режиме роя.Вы можете посмотреть на роях докеров, чтобы понять, какие сервисы докеров.

0 голосов
/ 01 января 2019

Реальной разницы нет.В официальной документации вы можете прочитать "Сервисы на самом деле просто контейнеры в производстве".

Сервисы могут быть объявлены в "docker-compose.yml" и могут быть запущены из него.После запуска они будут работать как контейнеры.

Это просто распространенный способ именовать части вашего стека.

...