1 of 17

Docker

Веб-орієнтовані системи і технології

Лекція 1

2 of 17

План

  • Контейнеризація. Віртуальні машини і контейнери;
  • Платформа Docker та її компоненти;
  • Образ і контейнер. Реєстр образів;
  • Базові команди Docker;
  • Dockerfile. Побудова Docker-образу;
  • Інструмент Docker Compose. Конфігурування веб-системи.

3 of 17

Практична частина (лабораторні 2-5)

  • Розробка веб-застосунку, налаштування локального та робочого оточення
  • Налаштування власного серверу та розгортання веб-системи

4 of 17

Контейнеризація

  • Метод віртуалізації, при якому декілька ізольованих областей віртуальної пам'яті, що відводяться для застосунків, контролюються базовою операційною системою
  • Процес розгортання програмного забезпечення, який об’єднує код програми з усіма файлами та бібліотеками, необхідними для роботи в будь-якій інфраструктурі

5 of 17

Контейнери та образи

Контейнер – виконавча одиниця програмного забезпечення, яка містить код і всі його залежності для швидкого і надійного запуску в різних середовищах.

Образ контейнера — це легкий автономний виконуваний пакет програмного забезпечення, який містить усе необхідне для запуску програми: код, час виконання, системні інструменти, системні бібліотеки та налаштування.

6 of 17

Використання контейнерів

  • Перенесення на хмару
  • Мікросервісна архітектура
  • CI/CD
  • Ізольовані локальні середовища
  • Оркестрація
  • Безсерверні обчислення (serverless)
  • Big Data
  • IoT
  • Безпека

7 of 17

Віртуальні машини vs контейнери

8 of 17

Переваги контейнерів

  • Легкий
    • Не включає ОС
    • Швидко запускається і горизонтально масштабується
  • Портативні та незалежні від платформи
  • Підтримка сучасних тенденцій до розробки та архітектури
  • Кожен компонент додатку може бути створений, розгорнутий і масштабований окремо

9 of 17

Образи, контейнери та реєстр

10 of 17

Docker

Програмна платформа для побудови, запуску і роботи додатків як контейнерів

  • Не потрібно пам'ятати, які інструменти яких версій потрібно встановити
  • Розробка і розгортання
  • Велика інфраструктура

11 of 17

Інструменти Docker

  • Docker client (CLI)
  • Docker Compose

12 of 17

Команди Docker

  • Список контейнерів

$ docker ps [OPTIONS]

  • Список працюючих контейнерів

$ docker ps

  • Список всіх контейнерів

$ docker ps --all (a)

  • Список контейнерів з інформацією про дисковий простір

$ docker ps --size (-s)

  • Список ID контейнерів

$ docker ps --quiet (-q)

13 of 17

Команди Docker

  • Завантаження образу

$ docker pull [OPTIONS] NAME

  • Побудова (збирання) образу

$ docker build [OPTIONS] PATH | URL

  • Побудова образу з dockerfile у поточній папці

$ docker build .

  • Побудова образу з dockerfile за заданим шляхом

$ docker build -f PATH/Dockerfile

14 of 17

Команди Docker

  • Перегляд логів

$ docker logs

  • Запуск контейнера з образу

$ docker run [OPTIONS] IMAGE [COMMAND]

  • Приклад. Запуск контейнера з образу та відкриттям терміналу bash з даного контейнера

$ docker run webapi -it bash

15 of 17

Команди Docker

  • Зупинка контейнера

$ docker stop [OPTIONS] CONTAINER

  • Зупинка всіх запущених контейнерів

docker stop $(docker ps -a -q)

  • Зупинка контейнера (процес не намагається завершити роботу контейнера коректно)

$ docker kill [OPTIONS] CONTAINER

  • «Убити» всі запущені контейнери

$ docker kill $(docker ps -a -q)

  • Видалити контейнер

$ docker rm CONTAINER

  • Видалити образ
  • $ docker rmi image

16 of 17

Таким чином, ми розглянули:

  • Поняття контейнеризації і контейнерів, їх особливості і переваги використання по відношення до віртуальних машин
  • Основи роботи з Докер: стандартні команди, поняття образу, контейнера, реєстра докер
  • Створення образу на основі dockerfile

17 of 17

https://gitlab.com/web-systems-docker/docker-nodejs-app-lab1