Яка різниця між докером і докер-композитом


237

dockerі, docker-composeздається, взаємодіють з одним і тим же dockerFile, в чому різниця між двома інструментами?

Відповіді:


270

dockerCLI використовується при управлінні окремими контейнерами на DOCKER двигуні. Це командний рядок клієнта для доступу до doemon api api.

docker-composeКлі може бути використаний для управління багатофункціональним додатком контейнера. Він також переміщує багато варіантів, які ви ввели б docker runу docker-compose.ymlфайл у файл для легшого використання. Він працює як "скрипт" на передньому кінці поверх того ж докері api, який використовується docker, тому ви можете робити все, що docker-composeробиться, за допомогою dockerкоманд та багатьох сценаріїв оболонок. Докладнішу інформацію див. У цій документації на докер-композиції .


Оновлення для режиму рій

Оскільки ця відповідь була розміщена, docker додав друге використання файлів docker-compose.yml. Починаючи з формату yml версії 3 та докера 1.13, ви можете використовувати yml з docker-compose, а також визначити стек у режимі рій докера. Для цього потрібно використовувати docker stack deploy -c docker-compose.yml $stack_nameзамість цьогоdocker-compose up а потім керувати стеком за допомогою dockerкоманд замість docker-composeкоманд. Відображення - це один для одного між двома напрямами:

  • Проект складання -> Ройковий стек: група послуг для конкретних цілей
  • Служба складання -> Служба рою: одне зображення та його конфігурація, можливо, масштабування.
  • Compose Container -> Ройове завдання: Один контейнер у службі

Більш детальну інформацію про режим рою див. У документації щодо режиму рій докера .


76

docker управляє окремими контейнерами

docker-compose керує кількома додатками контейнерів

Для використання докер-композиції потрібно 3 кроки:

  1. Визначте середовище програми за допомогою Dockerfile
  2. Визначте служби додатків у docker-compose.yml
  3. Запустити, docker-compose upщоб запустити та запустити додаток

докер-складати

Нижче наводиться приклад docker-compose.yml, взятий із докерів docker :

services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

3
Для наочності рядок build: .у webрозділі вказує на розташування Dockerfile, створеного на кроці 1.
AndrewGentry
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.