Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 9930|Відповідь: 2

Різниця між dockerfile і docker-compose

[Копіювати посилання]
Опубліковано 15.11.2019 09:33:13 | | |
Різниця між dockerfile і docker-compose
Давайте коротко розглянемо процес використання docker, який поділяється на створення образів і запуск контейнера.

Конструювання зображень: тобто створення образу, який містить середовище, програмний код тощо, необхідні для встановлення та експлуатації. Цей процес створення здійснюється за допомогою dockerfile.

Запуск контейнера: Контейнер нарешті запускається шляхом витягування створеного образу і запуску сервісу через серію інструкцій (наприклад, відображення портів, зовнішнє монтування даних, змінні середовища тощо). Для одного контейнера це можна запускати через docker run.

Якщо це передбачає запуск кількох контейнерів (наприклад, оркестрація сервісів), його можна реалізувати через docker-compose, який легко запускає кілька контейнерів як сервіс (звісно, лише один із них) і виконує функцію масштабування (масштабування сервісу).

Короткий підсумок:

1.dockerfile: створити образ;

2. Запуск докера: запуск контейнера;

3. docker-compose: Запустити сервіс;

Почніть з початку.
Якщо ви не користуєтеся docker, як ви створюєте WordPress? Спочатку знайдіть сервер, припустіть, що його ОС — Ubuntu, а потім крок за кроком слідуйте документації, введіть команду і напишіть конфігурацію, так?
А як щодо використання docker? Просто знайдіть сервер, незалежно від операційної системи, якщо він підтримує docker, docker запускає Ubuntu, docker витягне останній образ Ubuntu з офіційного джерела, можна уявити це як відкриття віртуальної машини Ubuntu, а потім встановити її крок за кроком, як вище.

Однак ця інсталяція має суттєвий недолік: після видалення контейнера жодної роботи не виконується. Звісно, ви можете використати docker commit, щоб зберегти його як образ, щоб його можна було повторно використовувати.

Але зображення зазвичай велике, і якщо ви ділитеся лише ним, інші не знатимуть, що саме містить ваше зображення, що не сприяє поширенню та повторному використанню.
Інтуїтивно зрозумілим рішенням є написати скрипт, який записує весь процес встановлення, щоб при повторній установці ви могли виконати скрипт. Dockerfile — це один із таких скриптів, який документує процес створення образу.
З Dockerfile просто запускай docker build. Ви можете створити зображення, і Dockerfile — це текстовий файл, який дуже легко змінювати.

Тепер, коли у вас є образ WordPress, потрібно лише запустити docker, щоб запустити WordPress.

Якщо це лише WordPress — цього достатньо. Але часто для запуску сервісу потрібно кілька зображень, таких як nginx, mysql, mail service тощо.
Частіше nginx, mysql і smtp — це всі зображення, і ці зображення працюють разом, щоб служити проєкту.
Docker-Compose — це рішення цієї проблеми. Інформація про те, які зображення потрібні вашому проєкту, як налаштувати кожне зображення, які об'єми монтувати тощо, включена у docker-compose.yml.
Щоб запустити сервіс, потрібно лише зробити docker-compose up, а для зупинки — docker-compse stop/down

Коротко кажучи, Dockerfile записує процес створення одного зображення docker-compse.yml — процес створення проєкту (зазвичай кількох зображень).

Ви сказали, що деякі туторіали використовують dockerfile+docker-composate, бо docker-compose.yml сам не містить інформації про збірку образу, і якщо образ витягнутий із реєстру docker, то dockerfile не потрібен; Якщо образ потрібно зібрати, потрібно надати Dockerfile.

docker-composeЦе контейнер оркестрації. Наприклад, у вас є PHP-образ, Mysql-образ і nginx-образ. Якщо docker-compose немає, то щоразу при запуску потрібно вводити параметри запуску кожного контейнера, змінні середовища, ім'я контейнера, вказувати параметри посилання різних контейнерів і виконувати низку операцій, що досить громіздко. Після використання docker-composer ви можете одночасно записувати ці команди у docker-composer.yml файлі, і щоразу, запускаючи все середовище (включаючи 3 контейнери), потрібно лише ввести команду docker-composer up.

dockerfileРоль полягає у створенні дзеркального відображення з нуля. Він містить середовище, програмний код тощо, необхідні для встановлення та експлуатації. Цей процес створення здійснюється за допомогою dockerfile. Dockerfile — Підготовлено для команди docker build для створення окремого образу, який також можна використовувати в docker-compose для живої збірки
docker-compose.yml - Скрипт для docker-compose, який може одночасно керувати кількома контейнерами, включно з відносинами між ними, чи то з офіційним образом, чи з власним зображенням, різними визначеннями мережевих портів, визначенням простору зберігання тощо




Попередній:Не вдалося зареєструвати URL "http://xx/" для сайту "SITE NAME"...
Наступний:Docker зберігає розташування зображення в системі Windows
 Орендодавець| Опубліковано 18.12.2022 14:56:50 |
centos installation tutorial Docker Compose
https://www.itsvse.com/thread-5164-1-1.html
 Орендодавець| Опубліковано 05.03.2025 10:37:33 |
BuildKit — це покращений бекенд, який замінює застарілий конструктор. Починаючи з версії 23.0, BuildKit є стандартним конструктором для користувачів на Docker Desktop та Docker Engine.

Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.

Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com