Docker и docker compose в чем разница

Руководство по Docker Compose для начинающих

Автор статьи, перевод которой мы сегодня публикуем, говорит, что она предназначена для тех разработчиков, которые хотят изучить Docker Compose и идут к тому, чтобы создать своё первое клиент-серверное приложение с использованием Docker. Предполагается, что читатель этого материала знаком с основами Docker. Если это не так — можете взглянуть на эту серию материалов, на эту публикацию, где основы Docker рассмотрены вместе с основами Kubernetes, и на эту статью для начинающих.

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Что такое Docker Compose?

Docker Compose — это инструментальное средство, входящее в состав Docker. Оно предназначено для решения задач, связанных с развёртыванием проектов.

Изучая основы Docker, вы могли столкнуться с созданием простейших приложений, работающих автономно, не зависящих, например, от внешних источников данных или от неких сервисов. На практике же подобные приложения — редкость. Реальные проекты обычно включают в себя целый набор совместно работающих приложений.

Как узнать, нужно ли вам, при развёртывании некоего проекта, воспользоваться Docker Compose? На самом деле — очень просто. Если для обеспечения функционирования этого проекта используется несколько сервисов, то Docker Compose может вам пригодиться. Например, в ситуации, когда создают веб-сайт, которому, для выполнения аутентификации пользователей, нужно подключиться к базе данных. Подобный проект может состоять из двух сервисов — того, что обеспечивает работу сайта, и того, который отвечает за поддержку базы данных.

Технология Docker Compose, если описывать её упрощённо, позволяет, с помощью одной команды, запускать множество сервисов.

Разница между Docker и Docker Compose

Docker применяется для управления отдельными контейнерами (сервисами), из которых состоит приложение.

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

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Docker (отдельный контейнер) и Docker Compose (несколько контейнеров)

Типичный сценарий использования Docker Compose

Docker Compose — это, в умелых руках, весьма мощный инструмент, позволяющий очень быстро развёртывать приложения, отличающиеся сложной архитектурой. Сейчас мы рассмотрим пример практического использования Docker Compose, разбор которого позволит вам оценить те преимущества, которые даст вам использование Docker Compose.

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

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

К сожалению, нечто вроде Docker Compose вы не использовали. Поэтому вам придётся переносить и перенастраивать сервисы по одному, надеясь на то, что вы, в процессе этой работы, ничего не забудете.

Если же вы используете Docker Compose, то перенос вашего проекта на новый сервер — это вопрос, который решается выполнением нескольких команд. Для того чтобы завершить перенос проекта на новое место, вам нужно лишь выполнить кое-какие настройки и загрузить на новый сервер резервную копию базы данных.

Разработка клиент-серверного приложения с использованием Docker Compose

Теперь, когда вы знаете о том, для чего мы собираемся использовать Docker Compose, пришло время создать ваше первое клиент-серверное приложение с использованием этого инструмента. А именно, речь идёт о разработке небольшого веб-сайта (сервера) на Python, который умеет выдавать файл с фрагментом текста. Этот файл у сервера запрашивает программа (клиент), тоже написанная на Python. После получения файла с сервера программа выводит текст, хранящийся в нём, на экран.

Обратите внимание на то, что мы рассчитываем на то, что вы владеете основами Docker, и на то, что у вас уже установлена платформа Docker.

Приступим к работе над проектом.

▍1. Создание проекта

Для того чтобы построить ваше первое клиент-серверное приложение, предлагаю начать с создания папки проекта. Она должна содержать следующие файлы и папки:

▍2. Создание сервера

Тут мы, в процессе создания сервера, затронем некоторые базовые вещи, касающиеся Docker.

2a. Создание файлов

Перейдите в папку server и создайте в ней следующие файлы:

2b. Редактирование Python-файла.

Добавим в файл server.py следующий код:

2c. Редактирование HTML-файла

В файл index.html добавим следующий текст:

Этот текст будет передаваться клиенту.

2d. Редактирование файла Dockerfile

Теперь займёмся работой над клиентом.

▍3. Создание клиента

Создавая клиентскую часть нашего проекта, мы попутно вспомним некоторые основы Docker.

3a. Создание файлов

Перейдите в папку вашего проекта client и создайте в ней следующие файлы:

3b. Редактирование Python-файла

Добавим в файл client.py следующий код:

Благодаря этому коду клиентское приложение может загрузить данные с сервера и вывести их на экран.

3c. Редактирование файла Dockerfile

▍4. Docker Compose

Вот код, который нужно поместить в файл docker-compose.yml :

▍5. Сборка проекта

▍6. Запуск проекта

Теперь, когда проект собран, пришло время его запустить. Этот шаг нашей работы соответствует шагу, на котором, при работе с отдельными контейнерами, выполняется команда docker run :

Полезные команды

Рассмотрим некоторые команды, которые могут вам пригодиться при работе с Docker Compose.

Эта команда позволяет останавливать и удалять контейнеры и другие ресурсы, созданные командой docker-compose up :

Эта команда выводит журналы сервисов:

С помощью такой команды можно вывести список контейнеров:

Данная команда позволяет выполнить команду в выполняющемся контейнере:

Такая команда позволяет вывести список образов:

Итоги

Мы рассмотрели основы работы с технологией Docker Compose, знание которых позволит вам пользоваться этой технологией и, при желании, приступить к её более глубокому изучению. Вот репозиторий с кодом проекта, который мы здесь рассматривали.

Уважаемые читатели! Пользуетесь ли вы Docker Compose в своих проектах?

Источник

Изучаем Docker, часть 2: термины и концепции

В первой части перевода серии материалов, посвящённых Docker, мы сделали общий обзор этой системы. В частности, мы говорили о том, почему технологии контейнеризации важны в наше время, о том, что такое контейнеры Docker, и о том, с чем их можно сравнить. Сегодня мы поговорим об экосистеме Docker и рассмотрим важные термины, с которыми вы можете столкнуться на пути изучения и использования Docker. Продолжив аналогию с разными вкусностями, представим, что наши термины — это пончики. Дюжина пончиков.

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Термины экосистемы Docker

Я разбил термины, с которыми вы можете столкнуться в ходе работы с Docker, на две части. Думаю, это облегчит их запоминание. Первый блок терминов будет относиться к механизмам Docker. Второй — к средствам масштабирования решений, основанных на контейнерах.

Механизмы Docker

▍Платформа Docker

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Платформа Docker (Docker Platform) — это программа, которая даёт нам возможность упаковывать приложения в контейнеры и запускать их на серверах. Платформа Docker позволяет помещать в контейнеры код и его зависимости. Как результат, системы, основанные на контейнерах, легко масштабировать, так как контейнеры можно переносить и воспроизводить.

▍Движок Docker

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Движок Docker (Docker Engine) — это клиент-серверное приложение. Компания Docker разделила движок Docker на два продукта. Docker Community Edition (CE) — это бесплатное ПО, во многом основанное на опенсорсных инструментах.

Вероятно, вы будете пользоваться именно этой версией Docker. Docker Enterprise — это платная версия системы, дающая пользователям дополнительные возможности в области поддержки систем, управления ими и безопасности. Платная версия Docker даёт компании средства, необходимые для её существования.

▍Клиент Docker

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Клиент Docker и другие механизмы экосистемы (взято из документации)

▍Демон Docker

Демон Docker (Docker Daemon) — это сервер Docker, который ожидает запросов к API Docker. Демон Docker управляет образами, контейнерами, сетями и томами.

▍Тома Docker

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Тома Docker (Docker Volumes) представляют собой наиболее предпочтительный механизм постоянного хранения данных, потребляемых или производимых приложениями.

▍Реестр Docker

Реестр Docker (Docker Registry) представляет собой удалённую платформу, используемую для хранения образов Docker. В ходе работы с Docker образы отправляют в реестр и загружают из него. Подобный реестр может быть организован тем, кто пользуется Docker. Кроме того, поставщики облачных услуг могут поддерживать и собственные реестры. Например, это касается AWS и Google Cloud.

▍Хаб Docker

Хаб Docker (Docker Hub) — это самый крупный реестр образов Docker. Кроме того, именно этот реестр используется при работе с Docker по умолчанию. Пользоваться хабом Docker можно бесплатно.

▍Репозиторий Docker

Репозиторием Docker (Docker Repository) называют набор образов Docker, обладающих одинаковыми именами и разными тегами. Теги — это идентификаторы образов.

Обычно в репозиториях хранятся разные версии одних и тех же образов. Например, Python — это имя популярнейшего официального репозитория Docker на хабе Docker. А вот Python:3.7-slim — это версия образа с тегом 3.7-slim в репозитории Python. В реестр можно отправить как целый репозиторий, так и отдельный образ.

Теперь поговорим о терминах экосистемы Docker, имеющих отношение к масштабированию.

Масштабирование решений, основанных на контейнерах

Следующие четыре термина имеют отношение к одновременному использованию нескольких контейнеров.

▍Сеть Docker

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Сетевые механизмы Docker (Docker Networking) позволяют организовывать связь между контейнерами Docker. Соединённые с помощью сети контейнеры могут выполняться на одном и том же хосте или на разных хостах. Подробности о сетевой подсистеме Docker можно почитать здесь.

▍Docker Compose

▍Docker Swarm

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Docker Swarm — это решение, предназначенное для управления контейнерными развёртываниями (то есть, как говорят, для оркестрации контейнеров). В этом материале из официального учебного курса по Docker можно найти сведения о Docker Swarm. Мне хотелось бы порекомендовать вам не тратить время на изучение Docker Swarm в том случае, если у вас нет на то веской причины.

▍Сервисы Docker

Сервисы Docker (Docker Services) — это различные части распределённого приложения. Вот что о них говорится в документации:

Сервисы — это всего лишь «контейнеры в продакшне». В пределах сервиса выполняется лишь один образ, но сервис определяет то, как именно выполняется образ. В частности, речь идёт о том, какие порты должны использоваться, сколько реплик контейнера должно выполняться для того, чтобы сервис обеспечивал бы необходимую вычислительную мощность, и так далее. Масштабирование сервисов предусматривает изменение количества экземпляров контейнера, в которых работает некая программа, благодаря чему сервису выделяется столько системных ресурсов, сколько ему требуется для решения некоей задачи.

Сервисы Docker позволяют масштабировать контейнеры в пределах нескольких демонов Docker, благодаря им существует и технология Docker Swarm.

Краткий перечень терминов

Давайте, буквально в двух словах, повторим только что представленные вам термины:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Вот, на всякий случай, ещё один пончик

Этот термин относится не к самой платформе Docker, а к технологии, которая очень часто используется совместно с Docker.

Kubernetes

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Kubernetes — это технология, которая позволяет автоматизировать развёртывание и масштабирование контейнеризированных приложений, а также управление ими. Это — бесспорный лидер рынка средств для оркестрации контейнеров. Если вам нужен инструмент для работы с группами контейнеров, для масштабирования решений, основанных на них, используйте не Docker Swarm, а Kubernetes. Kubernetes не является частью Docker. Они с Docker, скорее, похожи на лучших друзей.

Теперь, когда вы ознакомились с общими понятиями Docker и с терминологией, вы можете приступить к практическим экспериментам.

Итоги: печём пончики с Docker

Помните, как в прошлый раз мы сравнивали платформу Docker с духовкой, которую устанавливают в кухне? Сейчас самое время установить Docker на вашей «кухне» и что-нибудь приготовить.

Docker можно запускать локально на Linux, Mac и Windows. Если вы пользуетесь Mac или Windows, вы можете установить свежую версию Docker Desktop отсюда. Вместе с этой программой, кстати, устанавливается и Kubernetes. Если вы устанавливаете Docker на другой платформе, то загляните сюда для того, чтобы найти подходящую версию.

После установки Docker взгляните на первые две части официального руководства.

В следующий раз мы продолжим разговор о Docker. В частности, поговорим о файлах Dockerfile.

Уважаемые читатели! Если, читая материалы этой серии, вы открываете для себя Docker, просим рассказать о том, как вы планируете использовать технологии контейнеризации приложений.

Источник

Docker Compose: от разработки до продакшена

Перевод транскрипции подкаста подготовлен в преддверии старта курса «Администратор Linux»

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Docker Compose — это удивительный инструмент для создания рабочего
окружения для стека, используемого в вашем приложении. Он позволяет вам определять
каждый компонент вашего приложения, следуя четкому и простому синтаксису в YAML-
файлах.

С появлением docker compose v3 эти YAML-файлы могут использоваться непосредственно в рабочей среде, при работе с кластером Docker Swarm.

Но значит ли это, что вы можете использовать один и тот же docker-compose файл в процессе разработки и в продакшен среде? Или использовать этот же файл для стейджинга? Ну, в целом — да, но для такого функционала нам необходимо следующее:

Различия между файлами для разработки и продакшена

Во время разработки вы, скорее всего, захотите проверять изменения кода в
режиме реального времени. Для этого, обычно, том с исходным кодом монтируется в
контейнер, в котором находится рантайм для вашего приложения. Но для продакшн-среды
такой способ не подходит.

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

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

Переопределение конфигурации

Учитывая различия и то, что ваши зависимости могут отличаться в сценариях
разработки и продакшена, ясно, что нам потребуются разные конфигурационные файлы.

Docker compose поддерживает объединение различных compose-файлов для
получения окончательной конфигурации. Как это работает можно увидеть на примере:

Как было сказано, docker compose поддерживает объединение нескольких compose-
файлов, это позволяет переопределять различные параметры во втором файле. Например:

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

К счастью, docker compose автоматически ищет специальный файл с именем
docker-compose.override.yml для переопределения значений docker-compose.yml. Если
переименовать второй файл, то получится тот же результат, только с помощью изначальной команды:

Хорошо, так запомнить проще.

Интерполяция переменных

Файлы конфигурации поддерживают интерполяцию
переменных и значения по умолчанию. То есть вы можете сделать следующее:

И если вы выполняете docker-compose build (или push) без переменной окружения
$MY_SERVICE_VERSION, будет использовано значение latest, но если вы установите
значение переменной окружения до сборки, оно будет использовано при сборке или пуше
в регистр private.registry.mine.

Мои принципы

Подходы, которые удобны для меня, могут пригодиться и вам. Я следую этим
простым правилам:

Давайте посмотрим на простой пример.

Я могу использовать docker-compose (docker-compose up), чтобы запустить стек в
режиме разработки с исходным кодом, смонтированным в /project/src.

Я могу использовать эти же файлы на продакшене! И я мог бы использовать точно
такой же файл docker-compose.yml для стейджинга. Чтобы развернуть это на
продакшен, мне просто нужно собрать и отправить образ с предопределенным тегом
на этапе CI:

На продакшене это можно запустить с помощью следующих команд:

И если вы хотите сделать то же самое на стейдже, необходимо просто определить
необходимые переменные окружения для работы в среде стейджинга:

В итоге мы использовали два разных docker-compose файла, которые без
дублирования конфигураций могут использоваться для любой вашей среды!

Узнать подробнее о курсе «Администратор Linux»

Источник

Docker File против Docker Compose. В чем разница

Главное меню » Linux » Docker File против Docker Compose. В чем разница

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Эти два термина легко спутать, но также необходимо понимать разницу при разговоре с коллегой или вашим (потенциальным) работодателем.

Dockerfile – это то, что используется для создания образа контейнера, а файл Compose – это то, что используется для развертывания экземпляра этого образа в качестве контейнера.

Позвольте нам остановиться подробнее, чтобы вы правильно поняли разницу между Docker Compose и Dockerfile.

Что такое Dockerfile?

Нам нравится называть Dockerfile предшественником образа контейнера. Вы создаете образ из Dockerfile. Типичным Dockerfile содержит специальные инструкции по сборке, такие команды, как RUN, ADD, COPY, ENTRYPOINT и т.д.

Каждая строка начинается с инструкции для компонента сборки. Эти инструкции не обязательно должны быть написаны заглавными буквами. Следующее действует так же, как и предыдущее.

Из Dockerfile теперь вы можете создать образ контейнера (или образ Docker). Образ – это просто шаблон для запущенных контейнеров, состоящий из нескольких слоев только для чтения. Поскольку это статья не об образах контейнеров, мы воздержимся от излишних разъяснений по этой теме.

Чтобы создать образ из этого Dockerfile, используя интерфейс командной строки docker, выполните следующую команду:

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

Что такое Composefile?

Composefile используется в двух типах развертываний: в некластерном развертывании с помощью docker-compose и кластерном развертывании с docker swarm.

Чтобы различать эти два типа, мы собираемся обратиться к файлу набора, отвечающему за развертывание кластера, как к файлам стека. Мы расскажем о файлах стека чуть позже.

Компоновка файлов – это часть инструмента, называемого docker-compose. Это клиентское приложение для сервера демона докеров, что-то вроде docker клиента CLI, но вместо того, чтобы каждый раз запускать все команды docker-compose, вы можете повторно использовать один и тот же файл YAML снова и снова и развертывать один и тот же контейнер с тем же конфигурация, как и в первый раз.

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

Давайте возьмем предыдущий образ и развернем его, используя файл набора.

Сохраните файл как docker-compose.yml. Теперь запустите в том же каталоге следующую команду

Подождите и посмотрите, что произойдет.

Что такое файл стека?

Файлы стека идентичны файлам компоновки с аналогичным синтаксисом и большинством внутренних параметров, за некоторыми исключениями. Файлы стека используются для развертывания стеков сервисов в роевом кластере.

Вы можете повторно использовать предыдущий файл композиции непосредственно как файл стека.

Сначала инициализируйте кластер.

Затем запустите команду, подобную следующей

При таком развертывании необходимо проверить вывод, просмотрев журналы службы с помощью docker service logs ….

Подведение итогов

Файлы Dockerfiles и Compose служат разным целям. Если бы я мог построить график, это выглядело бы примерно так

Есть еще одна причина, по которой новичков путают с этими двумя файлами. На файл Dockerfile можно указать через файл Compose, а затем вы можете использовать docker-compose для создания образа.

Например, вы можете переписать предыдущий файл композиции, чтобы

Теперь вы можете запустить создание образа docker-compose build. Или вы также можете запустить сборку docker-compose up –build и сразу запустить контейнер.

Здесь файл Dockerfile передается через файл компоновки, и на первый взгляд может показаться, что это файл компоновки, который отвечает за создание образа, но это не так.

Мы надеемся, что эта статья прояснила, в чем разница между файлом Dockerfile и файлом Compose. Если у вас есть какие-либо вопросы, дайте нам знать в разделе комментариев ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

🐹 Docker Compose: Установка и использование.

Опубликовано 2021-07-09 · Обновлено 2021-11-05

Содержание:

На чем было опробовано:

1. Что такое Docker Compose?

Docker Compose — это инструментальное средство, входящее в состав Docker. Оно предназначено для решения задач, связанных с развёртыванием проектов.

Изучая основы Docker, вы могли столкнуться с созданием простейших приложений, работающих автономно, не зависящих, например, от внешних источников данных или от неких сервисов. На практике же подобные приложения — редкость. Реальные проекты обычно включают в себя целый набор совместно работающих приложений.

Как узнать, нужно ли вам, при развёртывании некоего проекта, воспользоваться Docker Compose? На самом деле — очень просто. Если для обеспечения функционирования этого проекта используется несколько сервисов, то Docker Compose может вам пригодиться.

Например, в ситуации, когда создают web-сайт, которому, для выполнения аутентификации пользователей, нужно подключиться к базе данных. Подобный проект может состоять из двух сервисов — того, что обеспечивает работу сайта, и того, который отвечает за поддержку базы данных.

Технология Docker Compose, если описывать её упрощённо, позволяет, с помощью одной команды, запускать множество сервисов, она работает на Docker‘ах.

2. Разница между Docker и Docker Compose.

Также эти образы можно использовать для запуска приложения как изолированного процесса в пространстве пользователя.

Подробнее, что такое Docker и как его установить на операционную систему CentOS 7, читайте по ссылке на моем сайте.

Docker применяется для управления отдельными контейнерами (сервисами), из которых состоит приложение.

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

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Docker (отдельный контейнер) и Docker Compose (несколько контейнеров).

3. Подготовка хост-сервера.

3.1. Обновим операционную систему CentOS 7 до актуального состояния:

3.2. Устанавливаем файловый менеджер Midnight Commander и интернет качалку wget:

3.3. Отключим SELinux.

Состояние работы SELinux:

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

SELinux включен. Отключим его.

Для этого достаточно выполнить замену строки в вышеописанном конфигурационном файле следующей командой:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

SELinux выключен.

3.4. Установка Docker.

Перейдите по ссылке и установите Docker компонент, затем вернитесь к данной инструкции и продолжайте установку Docker-Compose.

4. Установка Docker-Compose.

Docker-Compose доступен в обычном репозитории, но версии в репозитории немного отстают от самой крайней и актуальной версии Docker-Compose на сайте производителя данного программного обеспечения.

Внимание! Перед установкой Docker-Compose установите в начале простой Docker!

Крайнюю и актуальную версию Docker-Compose можно посмотреть по ссылке:

Ссылка на крайнюю актуальную версию Docker Compose: https://github.com/docker/compose/releases.

Скачаем крайнюю актуальную версию с GitHub по ссылке, которую вы заранее посмотрели на сайте производителя:

# sudo chmod +x /usr/local/bin/docker-compose

После завершения процесса проверьте установленную версию Docker Compose:

Ответ: docker-compose-version-pic-01.jpg

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Внимание! Вам придется выполнять все команды или от root или от sudo, но лучше добавить вашего пользователя в группу docker.

В целях безопасности, мы не будем работать через root, а добавим существующего пользователя в группу docker и перезагрузим службу:

Чтобы Docker-Compose корректно работал, перезапустим службу Docker:

# systemctl restart docker

Еще с Docker придется понять, что теперь не панель управления, а вы должны будете придумать, где разместить ваши данные из контейнера, будь то сайт или что-то еще, что может иметь свои файлы и каталоги. Теперь не будет никаких кнопочек из серии «Файловый менеджер«, которые сразу откроют вам каталог с данными ваших контейнеров. Вы должны сами придумать, где будет работать и размещаться ваш комплекс программ, которые вы запустите с помощью Docker-Compose.

К примеру это будет каталог

5. Настройка Docker-Compose.

Есть Docker port, а есть Published port.

Docker port — это порт, который контейнер будет считать, что использует, а Published это порт, через который будет доступен Docker port на родительской машине. Простыми словами, это проброс портов.

Контейнер — это как виртуальная машина. Его можно удалить, остановить, возобновить, подключиться к терминалу. В общем, делать все, что и с обычным Linux сервером или виртуальной машиной

Dockerfile — это набор инструкций, как нужно создавать контейнер. docker-compose.yml — в докере один Dockerfile это один сервис.

Этот файл объединяет все в одном месте и управляется через команду docker-compose :

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

6. Запуск docker-compose.

Начнем создание новых контейнеров с docker-compose.

На моём сайте есть пример, как развернуть WordPress с Nginx, php-fpm и MariaDB и PhpMyAdmin с помощью Docker Compose на сервере с CentOS 7.

Примеры команд.

Перейдите в каталог с docker-compose.yml и запустите новые контейнеры на основании созданного docker-compose.yml файла:

Запустите комплекс docker‘ов:

Проверьте состояние контейнеров:

7. Полезные команды.

Рассмотрим некоторые команды, которые могут вам пригодиться при работе с Docker Compose.

7.1. Запуск контейнера.

7. 2. Отладка.

7.3. Управление образами.

# docker image rm NAME (-f force)

# docker image tag SOURCE[:TAG] TARGET[:TAG]

7.4. Docker-compose.

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

7.5. Другие полезности.

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

# docker inspect NAME

Ответ:

7.6. Чистка мусора.

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

# docker network prune

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

7.7. Прочие команды.

Ответ:

Docker и docker compose в чем разница. Смотреть фото Docker и docker compose в чем разница. Смотреть картинку Docker и docker compose в чем разница. Картинка про Docker и docker compose в чем разница. Фото Docker и docker compose в чем разница

# docker-compose exec [service name] [command]

# docker-compose exec wordpress ls

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *