Когда мы используем команду docker service create
и когда мы используем команду docker run
?
В чем разница между Docker Service и Docker Container?
Ответ 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
Ответ 2
Возможно, вы захотите прочесть: " Docker service - новый запуск Docker "
Согласно этим слайдам, "создание службы Docker" похоже на "развитый" запуск Docker. Вам нужно создать "сервис", если вы хотите развернуть контейнер в Docker Swarm.
Ответ 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