Контейнеризация, виртуализация, Docker
2//Что такое контейнеризация?
3//Для чего нужна контейнеризация?
4//
5//Типы контейнеров
6//Преимущества контейнеров
7//Контейнер и виртуальная машина
8//Модульность
9//Современный подход к разработке
10//Переход к DevOPS
11//Docker
12//Архитектура Docker
13//Docker Daemon
13+//Основные команды docker
13++//Основные команды docker (2)
13+++//Основные команды docker (3)
14//Хранение данных в Docker
15//
16//Сети в Docker контейнерах
17//Типы сетевых подключений Docker
18//Публикация (проброс) портов
19//Dockerfile
20//Пример dockerfile
21//Docker-compose
22//Пример docker compose
23//Безопасность docker
24//Домашнее задание
1.80M
Categories: informaticsinformatics softwaresoftware

Контейнеризация, виртуализация, 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
- Разница контейнера и виртуальной машины
English     Русский Rules