1.07M
Category: softwaresoftware

през1-pp

1.

2.

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

3.

Проблемы традиционного подхода к
развертыванию приложений
Проблемы с совместимостью: различия в ОС,
библиотеках и конфигурациях.
Ошибки при развертывании: "Работает у меня,
но не работает на сервере".
Сложность масштабирования и обновления
приложения.

4.

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

5.

Преимущества
использования Docker
Портативность: Контейнеры можно запускать в
любых средах (локально, в облаке, на сервере).
Изоляция: Каждый контейнер работает независимо,
что позволяет избежать конфликтов между
приложениями.
Масштабируемость: Легко масштабировать
приложение в различных средах.
Быстрая настройка и развертывание: Один образ
— и готово.

6.

Что входит в состав
Docker?
Docker Engine — основной компонент, который управляет контейнерами.
Docker Images — образ, из которого создаются контейнеры. Это шаблон с
приложением и его зависимостями.
Docker Containers — изолированные экземпляры приложения, запущенные на
основе образов.
Docker Hub — публичный реестр Docker-образов для хранения и обмена
образами.

7.

Где применяется Docker?
Разработка и тестирование: Легкое создание изолированных сред для
разработки.
Микросервисы: Каждый микросервис может быть помещен в отдельный
контейнер.
Облачные сервисы: Легкость масштабирования и управления инфраструктурой
в облаке.

8.

Как Docker работает?
Docker использует ядро операционной системы для изоляции контейнеров.
Контейнеры используют cgroups и namespaces для изоляции ресурсов.
Образы Docker создаются на основе слоев, что делает их легкими и быстрыми
для распространения и обновления.

9.

Архитектура Docker
Docker состоит из нескольких компонентов, включая Docker Engine, Docker CLI
(Command Line Interface) и Docker Daemon.
Docker работает на основе клиент-серверной архитектуры:
Docker CLI (клиент) — отправляет команды Docker Daemon.
Docker Daemon (сервер) управляет контейнерами и образами.

10.

Docker в CI/CD
Docker помогает автоматизировать процессы Continuous Integration и
Continuous Deployment.
Использование контейнеров позволяет гарантировать, что приложение будет
работать одинаково в любой среде.

11.

Что такое Dockerfile?
Dockerfile — это текстовый файл, содержащий инструкции для сборки Dockerобраза.
Команды в Dockerfile описывают, как собрать контейнер с необходимыми
зависимостями и приложением.
Команды:
FROM — Указывает базовый образ
RUN — Выполнение команд в контейнере
COPY — Копирование файлов и директорий
WORKDIR — Установка рабочей директории, если ее не существует, то создаст автоматически
CMD — Указание команды для запуска контейнера, которая будет выполнена при запуске
контейнера
ENV — Установка переменных окружения

12.

Основные команды Docker
docker build — создание образа из Dockerfile. Пример: docker build -t myimage .
Создаст образ из докерфайла в текущей директории с тегом myimage.
docker run — запуск контейнера из образа. Пример: docker run myimage.
docker ps — отображение запущенных контейнеров. Пример: docker ps -a
выведет список всех контейнеров, в том числе не запущенных.
docker images — отображение всех образов.
docker pull — загрузка образа из Docker Hub.
docker push — отправка образа в Docker Hub.
docker stop — остановка контейнера.
docker start — запуск остановленного контейнера.

13.

Задание
Создать докерфайл с для образа на основе любой версии ubuntu(пример FROM
ubuntu:20.04 RUN apt install wget)
Сбилдить образ с тегом myimage docker build -t myimage .
Создать из него контейнер, запустить и подключиться к нему в терминале
docker run -it myimage
Посмотреть что внутри(ls), попробовать скачать какую-то картинку из
интернета wget <link>
Скопировать эту картинку из контейнера на хост-машину docker cp
<container_hash>:/<pathToImage> .
Остановить контейнер docker stop <container_hash>, проверить, что он
остановлен docker ps
Стартануть контейнер заново и проверить, что картинка на месте docker start -i
<container_hash>

14.

Задание
Скачать проект https://gitlab.strongteam.pro/agubarev/docker_ci.git
Создать докерфайл с окружением для запуска тестов на python, включая allure
для отчета, скопировать туда проект:
Нужны python3-pip, virtualenv, wget и аллюр, для аллюра ниже как установить
wget
https://github.com/allure-framework/allure2/releases/download/2.17.3/allure_2
.17.3-1_all.deb
export DEBIAN_FRONTEND=noninteractive && \
apt install -yq ./allure_2.17.3-1_all.deb
Запустить контейнер и тесты в нем, сгенерировать отчет, скачать его на хостмашину и посмотреть
English     Русский Rules