Докер создает упакованные приложения называется контейнерами. Каждый контейнер обеспечивает изолированную среду, аналогичную виртуальная машина (ВМ). В отличие от VMS, Docker Conticers Не запускайте полную операционную систему Отказ Они делятся ядром вашего хозяина и виртуализируется на уровне программного обеспечения.
Основы докера
Docker стал стандартным инструментом для разработчиков программного обеспечения и системных администраторов. Это аккуратный способ быстро запускать приложения, не влияя на остальную часть вашей системы. Вы можете раскрутить новую услугу с одним
Docker Run.
команда.
Контейнеры инкапсулируют все необходимое для запуска приложения, от зависимостей пакетов ОС к вашему собственному исходному коду. Вы определяете шаги создания контейнера в качестве инструкций в
Dockerfile
Отказ Docker использует DockerFile для построения
изображение
Отказ
Изображения определяют программное обеспечение доступное в контейнерах. Это слабо эквивалентно запуску VM с помощью ISO операционной системы. Если вы создаете изображение, любой пользователь Docker сможет запустить ваше приложение с
Docker Run.
Отказ
Как работает докер?
Контейнеры используют функции ядра операционной системы для обеспечения частично виртуализированных сред. Можно создавать контейнеры с нуля с командами, такими как
камин
Отказ Это запускает процесс с указанным корневым каталогом вместо корня системы. Но использование функций ядра напрямую напрямую, небезопасно и без ошибок.
Docker - это полное решение для производства, распределения и использования контейнеров. Современные релизы докеров состоят из несколько независимых компонентов Отказ Во-первых, есть докер Выступ , что вы взаимодействуете с вашим терминалом. CLI отправляет команды на Docker Daemon Отказ Это может управлять локально или на удаленном хосте Отказ Демон отвечает за управление контейнерами, а изображения, которые они созданы.
Окончательный компонент называется Контейнерное время выполнения Отказ Время выполнения вызывает функции ядра, чтобы фактически запускать контейнеры. Docker совместим с runtimes, которые придерживаются Спецификация OCI. Этот открытый стандарт позволяет взаимодействовать между различными инструментами контейнеразации.
Вам не нужно слишком беспокоиться о внутренней работе Докера, когда вы впервые начинаете. Установка
докер
В вашей системе даст вам все, что вам нужно создать и запустить контейнеры.
Почему так много людей используют докер?
Контейнеры стали настолько популярными, потому что они решают много распространенных проблем в разработке программного обеспечения. Способность контейнеризировать один раз и бежать везде уменьшает разрыв между Ваша среда развития и ваши производственные серверы.
Использование контейнеров дает вам уверенность в том, что всякая среда идентична. Если у вас есть новый член команды, им нужно только
Docker Run.
создать свой собственный экземпляр развития. Когда вы запускаете свой сервис, вы можете использовать свое изображение Docker для развертывания до производства. То
Живая среда
Будет точно соответствовать вашим местным экземплярам, избегая «работает на моем машине» сценариях.
Докер удобнее, чем полноценная виртуальная машина. VMS - это инструменты общего назначения, предназначенные для поддержки всевозможных рабочей нагрузки. Напротив, контейнеры являются легкими, самодостаточными и лучше подходят для сброса случаев использования. Поскольку Docker разделяет ядро хозяина, контейнеры имеют незначительное влияние на производительность системы. Время запуска контейнера почти мгновенно, так как вы только начинающие процессы, а не целая операционная система.
Начиная
Докер доступен на всех популярных дистрибутивах Linux. Он также работает на Windows и MacOS. Следовать Инструкции по установке Docker для вашей платформы Чтобы получить это и бегать.
Вы можете проверить, что ваша установка работает до начала простого контейнера:
Docker Run Hello-World
Это начнет новый контейнер с основными
Привет, мир
изображение. Изображение издает некоторые выходы, объясняющие, как использовать Docker. Затем контейнер выходит, бросает вас обратно в свой терминал.
Создание изображений
Как только вы пройдете
Привет, мир
, вы готовы создать свои собственные образы докера. Dockerfile описывает, как запустить ваш сервис
Установка требуемого программного обеспечения
и копирование в файлах. Вот простой пример, используя веб-сервер Apache:
с httpd: последние Запустить echo "Loadmodule headers_module модулей / mod_headers.so" & gt; & gt; /usr/local/apache2/Conf/httpd.conf. Скопируйте .htaccess /var/www/html/.htaccess. Копировать index.html /var/www/html/index.html. Копировать CSS / / var / www / html / css
То
ИЗ
строка определяет базовое изображение. В этом случае мы начинаем с официального изображения Apache. Docker применяет оставшиеся инструкции в вашем DockerFile сверху базового изображения.
То
ЗАПУСТИТЬ
Этап запускает команду в контейнере. Это может быть любая команда доступна в среде контейнера. Мы включаем
заголовки
Модуль Apache, который может быть использован
.htaccess.
Файл для настройки правил маршрутизации.
Последние строки скопируют файлы HTML и CSS в вашем рабочем каталоге в изображение контейнера. Ваше изображение теперь содержит все, что вам нужно, чтобы запустить свой веб-сайт.
Теперь вы можете построить изображение:
Docker Build -T My-сайт: v1.
Docker будет использовать ваш DockerFile, чтобы построить изображение. Вы увидите вывод в вашем терминале, так как Docker работает каждый из ваших инструкций.
То
-та
в команде
Теги к вашему образу
с указанным именем (
My-сайт: v1
). Это облегчает ссылку в будущем. Метки имеют два компонента, разделенными толстой кишки. Первая часть устанавливает имя изображения, а второй обычно обозначает его версию. Если вы опускаете толстую кишку, Docker по умолчанию
использовать
последний
как версия тега.
То
Отказ
В конце команды сообщите Docker использовать DockerFile в вашем локальном рабочем каталоге. Это также
Устанавливает контекст сборки
позволяя вам использовать файлы и папки в вашем рабочем каталоге с
Скопировать
Инструкции в вашем докерефиле.
Как только вы создали свое изображение, вы можете начать контейнер, используя
Docker Run.
:
Docker Run -D -P 8080: 80 My-сайт: v1
Мы используем несколько дополнительных флагов с
Docker Run.
здесь. То
потрясающий
Флаг заставляет Docker Cli откладывать от контейнера, позволяя ему работать на заднем плане. Отображение порта определяется с
-п
Таким образом, порт 8080 на ваших картах хоста к порту 80 в контейнере. Вы должны увидеть вашу веб-страницу, если вы посетите
localhost: 8080.
в вашем браузере.
Докерские изображения образуются из слоев. Каждая инструкция в вашем DockerFile создает новый слой. Вы можете использовать расширенные функции здания в ссылка несколько базовых изображений отбрасывая посреднические слои от более ранних изображений.
Регистрация изображений
Как только у вас есть изображение, вы можете толкать его в реестр. Реестры Обеспечить централизованное хранение Так что вы можете поделиться контейнерами с другими. Реестр по умолчанию Docker Hub. Отказ
Когда вы запускаете команду, которая ссылается на изображение, Docker сначала проверяет, доступен ли он локально. Если это не так, это постарается вытащить его из докера. Вы можете вручную потянуть изображения с
Docker Pult.
команда:
Docker Pult httpd: последние
Если вы хотите опубликовать изображение, создать
Docker Hub.
учетная запись. Запустить
Docker Login.
и введите ваше имя пользователя и пароль.
Далее, пометите свое изображение, используя свое имя пользователя Docker Hub:
Tag Docker Me-Image: Последнее докер-хаб-имя пользователя / My-image: последние
Теперь вы можете нажать свое изображение:
Docker Push Docker-Hub-username / My-Image: Последние
Другие пользователи смогут потянуть ваше изображение и начать контейнеры с ним.
Вы можете Запустите свой собственный реестр Если вам нужна личное хранение изображения. Несколько сторонних услуг также предложить реестры Docker в качестве альтернативы докера.
Управление вашими контейнерами
Docker CLI имеет несколько команд, чтобы позволить вам управлять запущенными контейнерами. Вот некоторые из наиболее полезных из них, чтобы узнать:
Список контейнеры
докер п.с.
показывает все ваши бегущие контейнеры. Добавление
-
флаг будет показывать остановленные контейнеры тоже.
Остановка и запуск контейнеров
Чтобы остановить контейнер, запустите
Докер остановить свой-контейнер
Отказ Заменять
мой-контейнер
с именем контейнера или ID. Вы можете получить эту информацию из
PS.
команда. Остановленный контейнер возобновляется
Докер начать свой-контейнер
Отказ
Контейнеры обычно работают до тех пор, пока их основной процесс остается в живых.
Перезапуск политика
контролировать то, что происходит, когда контейнер останавливается или ваши хозяева перезагружается. Проходить
--restart всегда
к
Docker Run.
чтобы перезапустить контейнер сразу после его остановки.
Получение консоли
Вы можете
выполнить команду в
контейнер, используя
Докер Exec мой контейнер-моя-команда
Отказ Это полезно, если вы хотите, чтобы вызвать вручную исполняемый файл, который отделят к основному процессу контейнера.
Добавить
-Это
флаг, если вам нужен интерактивный доступ. Это позволяет уронить в оболочку, выполнив
Докер Exec -это мой контейнер-ш
Отказ
Мониторинг журналов
Докер автоматически собирает выходной сигнал, излучаемый со стандартными входными и выходными потоками в контейнере. То
Докер регистрирует свой-контейнер
команда покажет журналы в контейнер внутри вашего терминала. То
--следить
флаг устанавливает непрерывный поток таким образом, что вы можете просматривать журналы в режиме реального времени.
Очистка ресурсы
Старые контейнеры и изображения могут быстро накапливаться в вашей системе. Использовать
Докер ет мое-контейнер
удалить контейнер по его ID или имя.
Команда для изображений
Докер RMI мой-образ: последние
Отказ Pass ID или полное имя тега изображения. Если указать тег, изображение не будет удалено, пока он больше не имеет меток, присвоенных. В противном случае, данный тег будет удален, но другие метки на изображении будут оставаться годными к употреблению.
Объемные чистые окна возможно с помощью
докер чернослив
команда
Отказ Это дает вам простой способ удалить все остановленные контейнеры и избыточные изображения.
Управление графический
Если терминал не ваша вещь, вы можете использовать сторонние инструменты создать графический интерфейс для Докер Отказ Веб-панели позволяют быстро контролировать и управлять установкой. Они также помогут вам получить удаленный контроль контейнеров.
Стойкие хранения данных
Docker контейнеры эфемерны по умолчанию. Изменения, внесенные в файловую систему в контейнер не будет сохраняться после того, как контейнер останавливается. Это не безопасно
запустить любую форму системы хранения файлов
в контейнере началось с основной
Docker Run.
команда.
Есть несколько различных подходов к управление постоянными данными Отказ Наиболее распространенным является использование тома Докер. Объемы единицы хранения которые установлены в контейнер файловых систем. Любые данные в объеме остаются нетронутыми после его связанных контейнерных упоров, что позволяют подключить еще один контейнер в будущем.
Обеспечение безопасности
Dockerized рабочей нагрузка может быть более безопасной, чем голые металлическими аналоги, а Докер обеспечивает некоторое разделение между операционной системой и вашими услугами. Тем не менее, Docker потенциальная проблема безопасности, как это
обычно работает как
корень
и может быть использована для запуска вредоносного программного обеспечения.
Если вы только работаете Docker как средство разработки, установки по умолчанию, как правило, безопасны для использования. Производство сервера и машины с раструбом демона сети подвергавшихся воздействию должны быть закалены, прежде чем идти в прямом эфире.
Аудит установку Докер для выявления потенциальных проблем безопасности. Есть автоматизированные инструменты, доступные Это может помочь вам найти слабые стороны и предложить резолюции. Вы также можете Сканировать отдельные контейнерные изображения для вопросов, которые могут быть использованы изнутри.
Работа с несколькими контейнерами
То
докер
Команда работает только с одним контейнером одновременно. Вы часто хотите использовать контейнеры в совокупности.
Docker Compose
Это инструмент, который позволяет определять ваши контейнеры, декларивно в файле yaml. Вы можете начать их все с одной командой.
Это полезно, когда ваш проект зависит от других услуг, таких как веб-бэкэнда, которая опирается на сервере базы данных. Вы можете определить оба контейнера в вашем
Docker-Compose.yml.yml.yml
и воспользоваться оптимизированным управлением с
Автоматическая сеть
Отказ
Вот простой
Docker-Compose.yml.yml.yml
файл:
Версия: «3»
Сервисы:
приложение:
Изображение: App-Server: последние
Порты:
- 8000: 80
база данных:
Изображение: База данных-сервера: последние
Объемы:
- Данные базы данных: / data
Объемы:
Данные базы данных:
Это определяет две контейнеры (
приложение
а также
база данных
). Объем создан для базы данных. Это устанавливается на
/данные
в контейнере. Порт 80 сервера приложений подвергается 8000 на хосте. Запустить
Docker-Compose up -d
раскрутить обе службы, включая сеть и объем.
Использование Docker Compose позволяет вам
Написать многоразовый
Определения контейнеров, которые вы можете поделиться с другими. Вы можете совершить
Docker-Compose.yml.yml.yml
в вашу вашу версию, вместо того, чтобы запомнить разработчики
Docker Run.
команды.
Есть и другие подходы для работы нескольких контейнеров. Приложение Docker есть Выходящее решение, которое обеспечивает другой уровень абстракции. В другом месте в экосистеме, Podman - это альтернатива докера Это позволяет создавать «стручки» контейнеров в вашем терминале.
Ортестография контейнера
Докер нормально не работает как в производстве. Сейчас более распространено, чтобы использовать оркестовую платформу, такую как Кубернеты или Docker Rash Mode. Эти инструменты предназначены для обработки Несколько контейнерных реплик, который повышает масштабируемость и надежность.
Docker - это только один компонент в более широком движении контейнеров. Оркестраторы
использовать то же самое
Технологии выполнения контейнера для обеспечения окружающей среды, которая лучше подходит для производства. Использование нескольких экземпляров контейнеров
позволяет обновлять обновления
Как и распределение через машины, создавая ваше развертывание более устойчивым для изменения и отключения. Регулярный
докер
CLI нацелен на один хост и работает с отдельными контейнерами.
Мощная платформа для контейнеров
Docker дает вам все, что вам нужно работать с контейнерами. Он стал ключевым инструментом для разработки программного обеспечения и администрирования системы. Основными преимуществами являются повышенная изоляция и переносимость для отдельных услуг.
Познакомиться с Docker требует понимания основных концепций контейнера и изображения. Вы можете применить их, чтобы создать свои специализированные изображения и среды, которые контейнерируют ваши рабочие нагрузки.