Docker Це платформа для розробки, доставки та запуску додатків у контейнерах.
Контейнер - це окрема віртуальна машина, яка містить все необхідне для запуску програми: код, бібліотеки, залежності та налаштування. Вона знаходитться на машині користувача, має окрему операційну систему, але використовує ресурси хост-машини (процесор, пам’ять, диск).
Особливості контейнера
Головна проблема комунікації розробників це:
Якщо всі будуть мати однакове середовище, то проблем не буде.
Питання: як це зробити?
- Складно
- Різні ОС
- Різні версії
- Важко підтримувати
Використовувати пакети, що спрощують встановлення залежностей, наприклад, requirements.txt
для Python або renv
для R.
Важко встановити
Важко підтримувати
Багато пакетів для різних мов
Охоплює не всі залежності
Встановлюю більшість залежностей
Працює на своїй ОС
Використовувати контейнери, наприклад, Docker
.
Потребує місце на диску
Потребує ресурси (CPU, RAM)
Потрібно вивчити базові команди
Встановлює всі залежності
Працює на власній ОС, тому байду яка ОС у користувача
Легко переноситься
Повне налаштування середовища
Dockerfile - це будь-який текстовий файл, який читає Docker для створення образу (image). Він містить усі інструкції, по типу:
Яка ОС
Які залежності
Які файли входять до контейнера
DOCKERFILE - це рецепт створення образу (image)
Docker Image - це шаблон (шаблонна віртуальна машина), який створюється на основі інструкцій з Dockerfile. В цьому документу є інструкції по будуванні контейнера, але вже у форматі команд, що не розуміє людина, а розуміє Docker.
IMAGE - це шаблон віртуальної машини або інструкція для створення контейнера
Docker Container - це запущений образ (image). Це вже повноцінна віртуальна машина, яка працює на вашому комп’ютері. Вона має власну ОС, бібліотеки, залежності та налаштування.
CONTAINER - це запущений образ (image) або віртуальна, що готова до роботи
By oleksandkov