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