Примечание. Вопрос предполагает, что справочник по Docker Cloud - это путеводитель для понимания стека, и он полезен, но это не авторитетный источник для стека и компоновки - вместо этого это руководство. это характерно для размещенной службы Docker: «Docker Cloud предоставляет размещенную службу реестра со средствами сборки и тестирования». Документацию по файлам см. В формате файла Compose версии 3, хотя он называется " Compose », это авторитетное место, где функции работают как с compose, так и с swarm / stack и как это сделать.
Вы можете указать группу контейнеров Docker для настройки и развертывания двумя способами:
- Docker compose (
docker-compose up
)
- Докерский рой (
docker swarm init; docker stack deploy --compose-file docker-stack.yml mystack
)
Оба используют YAML-файл, написанный в формате файла Compose версии 3 Docker. Эта ссылка является основным источником, документирующим конфигурацию docker-compose и docker swarm / stack.
Однако есть определенные различия между тем, что вы можете делать в двух файлах yml - конкретными параметрами и конкретными соглашениями об именах:
Параметры
Доступные параметры конфигурации службы задокументированы на странице Создание ссылки на файл - обычно с примечание внизу записи опции, описывающей ее как игнорируемую либо docker stack deploy
, либо docker-compose up
.
Например, следующие параметры игнорируются при развертывании стек в режиме роения с файлом Compose (версия 3):
build, cap_add, cap_drop, cgroup_parent, container_name, depends_on, devices, external_links, links, network_mode, restart, security_opt, stop_signal, sysctls, tmpfs (версия 3-3.5), userns_mode
... в то время как некоторые параметры игнорируются docker-compose
, но работают с docker stack deploy
, например:
развернуть, restart_policy
При запуске из командной строки docker stack deploy
будет выводить предупреждения о том, какие параметры он игнорирует:
Игнорирование неподдерживаемых опций: ссылки
Именование файлов
Для docker-compose up
имя файла по умолчанию - docker-compose.yml
, если альтернативное имя файла не указано с помощью -f
(см. ссылку на создание). Обычно это имя используется по умолчанию и команда запускается без аргументов.
Для docker stack deploy
в справочнике по развертыванию стека докеров нет файла по умолчанию. Вы можете использовать любое имя, какое захотите, однако вот три соглашения:
- use
docker-stack.yml
, as used in the official Docker for Beginners Ch.3: Deploying an app to a Swarm.
- используйте
docker-cloud.yml
, как указано в справочнике по YML Docker Cloud Stack для службы Docker Cloud.
- используйте
docker-compose.yml
- старое имя по умолчанию для формата файла Compose.
person
JeremyDouglass
schedule
07.08.2018