В чем разница между Docker Service и Docker Container?

Когда мы используем команду docker service create и когда мы используем команду docker run?

Ответ 1

Вкратце: Служба Docker используется в основном, когда вы сконфигурировали мастер node с роем Docker, чтобы контейнеры docker выполнялись в распределенной среде, и это может быть легко управляемый.

Выполнение Docker: Команда запуска docker сначала создает загружаемый слой контейнера над указанным изображением, а затем запускает его с помощью указанной команды.

То есть, запуск docker эквивалентен API/контейнерам/create then/container/(id)/start

источник: https://docs.docker.com/engine/reference/commandline/run/#parent-command

Служба докеров: Служба Docker будет изображением для микросервиса в контексте какого-либо более крупного приложения. Примеры служб могут включать HTTP-сервер, базу данных или любой другой исполняемый файл, который вы хотите запускать в распределенной среде.

При создании службы вы указываете, какой образ контейнера использовать и какие команды выполнять внутри запущенных контейнеров. Вы также определяете параметры службы, включая:

  • порт, в котором рой сделает сервис доступным вне рой.
  • оверлейная сеть для подключения к другим сервисам в рое
  • Ограничения и резервирование ЦП и памяти
  • скользящая политика обновления.
  • количество реплик изображения для запуска в рое

источник: https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/#services-tasks-and-containers

Ответ 3

Услуги докеры похожи на "чертежи" для контейнеров. Вы можете, например, определить простого работника как службу, а затем масштабировать эту службу до 20 контейнеров, чтобы быстро пройти очередь. После этого вы снова масштабируете эту услугу до 3 контейнеров. Кроме того, через Swarm эти контейнеры могут быть развернуты на разных узлах вашего роя.

Но да, я также рекомендую прочитать документацию, как предположил @Tristan.

Ответ 4

Запуск Docker запустит один контейнер.

При обслуживании докеров вы управляете группой контейнеров (с одного и того же изображения). Вы можете масштабировать их (запускать несколько контейнеров) или обновлять их.

Ответ 5

  • Docker run используется для создания автономного контейнера
  • Docker service create используется для создания экземпляров (называемых task) этой службы, работающих в кластере (называемом swarm) компьютеров (называемых узлом с). Эти задачи являются контейнерами курса, но не являются автономными контейнерами. В некотором смысле сервис выступает в качестве шаблона при создании экземпляров задач.

Например,

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

создает 3 задачи службы MY_SERVICE_NAME, основанной на изображении IMAGE: TAG.

Более подробную информацию можно найти здесь here