Similar presentations:
Контейнеризация, виртуализация, Docker. Лекция 1. Программно-аппаратные средства защиты информации
1. Контейнеризация, виртуализация, Docker
Лекция 1.Программно-аппаратные средства защиты информации
2. 2//Что такое контейнеризация?
• Контейнеризация — метод, с помощью которого программныйкод упаковывается в единый исполняемый файл вместе с
библиотеками и зависимостями, чтобы обеспечить его
корректный запуск. Такие файлы называют контейнерами.
3. 3//Для чего нужна контейнеризация?
• Если код разрабатывается в определенной вычислительной среде(например, при переносе на новый сервер), часто возникают
ошибки, связанные с тонкостями настройки. При
контейнеризации таких проблем меньше, контейнер не зависит
от настроек основной операционной системы и может работать
на любой платформе или в облаке.
4. 4//
5. 5//Типы контейнеров
6. 6//Преимущества контейнеров
• Портативность• Изолированность
• Независимость
• Масштабируемость
• Гибкость и скорость развертывания
• Стандартизация
• Эффективное использование ресурсов
• Легковесность
7. 7//Контейнер и виртуальная машина
8. 8//Модульность
• Контейнеры — это модули, в каждом из которых запускается одноприложение. Они устанавливаются на физический сервер и его
ОС, например Windows или Linux. Контейнеры отделяют
содержимое от операционной системы. Контейнеры легче,
быстрее разворачиваются, требуют меньше оперативной памяти
и мощностей, а также более гибкие. Расход ресурсов меньше,
быстродействие выше.
9. 9//Современный подход к разработке
10. 10//Переход к DevOPS
• Термин DevOps является комбинацией двух слов — development(разработка) и operations (эксплуатация) — и отражает процесс
объединения этих практик в один непрерывный процесс.
11. 11//Docker
• Docker — это платформа с открытым исходным кодом, котораяпозволяет разработчикам создавать, развертывать, запускать,
обновлять и управлять контейнерами — стандартизированными
исполняемыми компонентами, объединяющими исходный код
приложения с библиотеками операционной системы (ОС) и
зависимостями, необходимыми для запуска этого кода в любой
среде.
12. 12//Архитектура Docker
13. 13//Docker Daemon
• Демон Docker – это центр ваших взаимодействий с Docker, ипоэтому он является местом, где вы можете начать понимать все
соответствующие элементы. Он контролирует доступ к Docker на
вашем компьютере, управляет состоянием контейнеров и
образов, а также взаимодействует с внешним миром.
14. 13+//Основные команды docker
docker build –t name_container . (точка в конце означает, чтоdockerfile лежит в текущей директории) – Сборка образа из файла
dockerfile
docker ps –a – просмотр существующих контейнеров
docker –rm name_container – удалить контейнер
docker run –d ––name name_container 321fb123765 – запустить
контейнер из образа 321fb123765 в фоне, вывести его ID,
присвоить имя контейнеру name_container
docker start ID-контейнера – запустить ранее остановленный
контейнер
15. 13++//Основные команды docker (2)
docker run –p 80:80 –d nginx – запустить контейнер nginx в фоне ипробросить порт 80 наружу
docker stop name_container – остановить контейнер
docker start name_container – запустить остановленный контейнер
docker images – показать доступные локально образы
docker build –no-cache name_container . – собрать контейнер на
основе dockerfile в текущей директории без кеша
docker exec –ti c123321 bash – зайти в работающий контейнер
docker port c123321 – показать проброшенные порты
16. 13+++//Основные команды docker (3)
docker logs -f c123321 – просмотр логов запущенного контейнераdocker volume create --name name_disk – создать локальный диск
docker run –v name-disk:/data name_container – монтирование
диска при старте контейнера
docker network create name-net – создать локальную сеть
docker run –d –net name-net name_container – подключить
контейнер к сети при старте
docker network connect name-net c123321 – подключить
работающий контейнер к сети
17. 14//Хранение данных в Docker
• Одна из основных отличительных черт контейнеров эфемерность.• Это хорошо для приложений или сервисов, которые не сохраняют
результаты своей работы. Например, функции для вычисления
или преобразования данных: они получили один набор данных в
качестве входных данных, они преобразовали его или вычислили
и вернули результат. Вот и все, вам не нужно ничего нигде
сохранять.
• Способы хранения данных: volumes, bind mount, tmpfs mount.
Они предоставляют либо каталог, либо отдельный файл в
контейнере.
18. 15//
19. 16//Сети в Docker контейнерах
20. 17//Типы сетевых подключений Docker
• Bridge network driver• Overlay network driver
• Host network driver
• IPvlan network driver
• Macvlan network driver
• None network driver
21. 18//Публикация (проброс) портов
• По умолчанию, когда вы запускаете контейнер с помощью«docker create» или «docker run», контейнер не раскрывает порты
внешнему миру. Используйте флаг «--publish» или «-p», чтобы
сделать порт доступным для служб за пределами Docker.
• Это создает правило брандмауэра на хосте, сопоставляющее порт
контейнера порту хоста Docker с внешним миром.
• Публикация портов контейнеров по умолчанию небезопасна.
docker run -p 127.0.0.1:8080:80 nginx
22. 19//Dockerfile
• Dockerfile — это простой текстовый файл, в котором содержитсясписок команд Докер-клиента. Это простой способ
автоматизировать процесс создания образа. Команды в
Dockerfile почти идентичны аналогам в Linux. FROM — задаёт
базовый (родительский) образ. Некоторые из них:
• LABEL — описывает метаданные. Например — сведения о том,
кто создал и поддерживает образ.
• ENV — устанавливает постоянные переменные среды.
• VOLUME — создаёт точку монтирования для работы с
постоянным хранилищем.
23. 20//Пример dockerfile
• Файл Dockerfile находится в директории /var/lib/docker ипредставляет собой текстовый файл с именем Dockerfile,
который не имеет расширения.
24. 21//Docker-compose
• Docker Compose упрощает управление всем стеком приложений,упрощая управление службами, сетями и томами в одном
понятном файле конфигурации YAML.
25. 22//Пример docker compose
• Docker применяется дляуправления отдельными
контейнерами
(сервисами), из которых
состоит приложение.
• Даётся описание каждому
из контейнеров в одном
файле, также и
редактируется
26. 23//Безопасность docker
• Изоляция, которую обеспечивает технология, может вызыватьложное чувство безопасности. Разработчик верит, что контейнер
по умолчанию безопасен и не заботится о мерах защиты.
• Безопасная конфигурация контейнеров – это набор настроек,
которые позволяет минимизировать риски возникновения
инцидентов в основных компонентах docker:
• - Docker-хост,
• - Docker Daemon,
• - Docker-образ,
• - Runtime контейнеров.
27. 24//Домашнее задание
• Практическая работа №1• Контрольные вопросы:
- Основные команды docker (1-3)
- Архитектура Docker
- Разница контейнера и виртуальной машины
informatics
software