Попытался ознакомиться с технологией, предоставляемой Docker, на предмет пользы в разработке приложений.
Был слегка удивлен невнятным описанием, не смотря на довольно большое количество различных статей и блогов. Поэтому стал разбираться сам и приведу тут основные моменты, которые должны, на мой взгляд, помочь начинающим.
Что такое Docker
Упрощенно, Docker - это технология виртуализации приложений, в отличие от систем виртуализации операционных систем (таких как VmWare, VirtualBox etc.)
Естественно, плюсы этой технологии очевидны:
- чистота "родной" операционной системы после установки/удаления приложения;
- возможность простого отката при различных настройках приложения до любого сохраненного состояния вплоть до "чисто-установленного";
- возможность экспериментировать с различными версиями приложений, различными настройками без переустановок;
- и основное - возможность передачи всего комплекса приложений (например, база данных + сервер приложений + web-сервер) определенных версий, с определенными настройками, т.е. гарантированно воспроизводящих требуемое поведение, коллегам, тестировщикам, заказчику и т.д.
Тут можно найти и установщик, и репозиторий образов, и документацию, и сообщество...
Устанавливая Docker вы поручаете службу (сервис), который управляет жизненным циклом контейнеров с необходимыми вам приложениями.
Теперь немного про определения
Образ (image) - это "родитель" последующих контейнеров. Обычно это чисто установленное приложение.
Контейнер (container) - это экземпляр образа, т.е. наследник с какими-то дополнительными свойствами (обновлениями, настройками, другими образами и т.п.). Именно контейнер под управлением службы docker эмулирует определенное приложение.
Практические заметки
Установка службы docker производится согласно "обычиям" вашей операционной системы.
Я экспериментировал на Centos 7, поэтому тупо выполнил
# yum install dockerОднако, после заметил отсутствие такого компонента, как docker-compose. Для его установки мне понадобилось сделать следующее:
# yum install epel-release
# yum install -y python-pip
# pip install docker-composeи на всякий случай
# yum upgrade python*(пользователям Windows и MacOS, по-моему, ничего не требуется - всё устанавливается одним инсталлятором)
Образ можно создавать самому, описывая процесс создания в текстовом файле Dockerfile. Получая данный файл на вход командой:
# docker build .служба docker, пошагово выполняя команды этого файла, собирает образ - скачивает необходимые дистрибутивы и/или сопутствующие образы, обновляет необходимые пакеты и т.п.
Центральный репозиторий образов расположен по адресу hub.docker.com.
Отсюда можно скачать готовые образы, обычно командой:
# docker pull [имя_образа]или найти готовые Dockerfile для самостоятельно создания нужных образов.
Поиск нужного образа:
# docker search [OPTIONS] TERM
Образы в локальном репозитории:
# docker images
Все контейнеры в системе:
# docker ps -a
Только запущенные (рабочие) контейнеры:
# docker ps
Запуск контейнера (данная команда с опциями и аргументами - самое главное для настройки окружения запускаемого приложения):
# docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Выключение запущенного контейнера:
# docker stop [OPTIONS] CONTAINER [CONTAINER...]
Приостановка запущенного контейнера и возобновление работы:
# docker pause CONTAINER [CONTAINER...]
# docker unpause CONTAINER [CONTAINER...]
Ключевые моменты запуска контейнера
Комментариев нет :
Отправить комментарий