Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 9930|Ответ: 2

Разница между dockerfile и docker-compose

[Скопировать ссылку]
Опубликовано 15.11.2019 9:33:13 | | |
Разница между dockerfile и docker-compose
Давайте кратко разберёмся с процессом использования docker, который делится на создание изображений и запуск контейнера.

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

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

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

Краткое резюме:

1.dockerfile: создание образа;

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

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

Начните с самого начала.
Если вы не используете Docker, как вы собираете WordPress? Сначала найдите сервер, предположите, что его ОС — Ubuntu, а затем шаг за шагом следуйте документации, введите команду и напишите конфигурацию, верно?
А как насчёт использования Docker? Просто найдите сервер, независимо от операционной системы, если он поддерживает docker, docker запускает Ubuntu, docker вытащит последний образ Ubuntu из официального исходного кода, можно представить это как открытие виртуальной машины Ubuntu, а затем устанавливать её шаг за шагом, как выше.

Однако у такой установки есть серьёзный недостаток: после удаления контейнера никаких работ не выполняется. Конечно, вы можете использовать docker-коммит, чтобы сохранить его как образ, чтобы использовать его повторно.

Но изображение обычно большое, и если вы просто поделитесь, другие не узнают, что в нём содержится, что не способствует его распространению и повторному использованию.
Интуитивно понятное решение — написать скрипт для записи всего процесса установки, чтобы при повторной установке вы могли выполнить скрипт. 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-compose, потому что 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 Docker Compose tutorial
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