У цій статті я розповім що таке Docker, навіщо він потрібен, як його встановити і налаштувати в різних дистрибутивах Linux: Ubuntu, Debian, Kali, Parrot. Дам основні команди для роботи з Docker в Linux.
Що таке Docker простими словами?
Docker — це програмна платформа, заснована на контейнерній віртуалізації (контейнеризації). Контейнер — це по-суті готовий образ програми разом з усім начинням та середовищем. Щоб розгорнути програму — потрібно лише завантажити контейнер з допомогою Docker та запустити його. І таких контейнерів одночасно можна застосовувати необмежену кількість.
Початково технологія Docker була створена для програмістів та DevOps-інженерів, яким потрібно забезпечувати безперервне розгортання та тестування програмного забезпечення, незалежно від операційної системи, робочого оточення, ресурсів і оперативної пам’яті.
Завдяки цьому, з часом Docker’ризація набула величезної популярності серед усіх ІТ-спеціалістів, адже дозволяє легко запакувати і запустити будь-яку програму, незалежно від системного середовища. Не потрібно більше хвилюватися про можливі помилки залежностей (dependiens), які виникають зав відсутності бібліотек або конфлікти версій.
Таким чином, “Докер” — це універсальний, я б сказав “народний” інструмент, який може бути корисним кожному, хто працює з додатками: у веб-розробці, розгортанні, тестуванні і так далі.
Основна термінологія Docker
- docker image – це вже готовий віртуальний образ додатка;
- dockerfile – це файл інструкція по збору образу docker;
- docker engine – це движок docker, тобто програмне забезпечення, встановлене та запущене в поточній операційній системі;
- docker container – це вже запущений додаток;
- docker daemon – це фонова служба для керування docker образами і контейнерами;
- docker hub – це віддалений репозиторій docker;
- docker compose – це службова утиліта для одночасного керування пов’язаними docker контейнерами.
Інструкція по встановленню Docker в Ubuntu
Процедура встановлення проводиться на чистий VPS-сервер та відбувається згідно офіційної документації Docker.
1. Оновлюємо APT-репозиторій та встановлюємо необхідні пакунки:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release 2. Додаємо GPG-ключ репозиторія в систему (означає Gnu Privacy Guard і засвідчує, що ви отримуєте пакети з надійного та захищеного джерела):
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3. Тепер додаємо в систему стабільний репозиторій:
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. Завантажуємо пакети встановлення Docker:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
5. Отримуємо список версій Docker та встановлюємо актуальну:
apt-cache madison docker-ce sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
6.Перевіряємо запуск Docker:
sudo docker run hello-world
Якщо на екрані з’явиться стартове привітання “Hello from Docker” — значить Docker успішно встановлено.
Інструкція по встановленню Docker в Debian
Процедура встановлення Docker в Debian практично ідентична Ubuntu, але відзняється лише репозиторіями.
1. Оновлюємо APT-репозиторій та встановлюємо необхідні пакунки:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release 2. Додаємо GPG-ключ в систему:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3. Додаємо в систему стабільний репозиторій:
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. Завантажуємо пакети встановлення:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
5. Отримуємо список версій Docker та встановлюємо актуальну:
apt-cache madison docker-ce sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
6.Перевіряємо пуск Docker:
sudo docker run hello-world
Як встановити Docker в дистрибутивах Kali/Parrot Linux?
Kali та Parrot Linux — це спеціальні “хакерські” дистрибутиви ОС Linux розроблені на базі Debian. Docker-пакети в них вже включені по замовчуванню. Встановлення відбувається кількома командами:
sudo apt update sudo apt install docker.io sudo systemctl enable docker.socket
Список базових команд Docker
sudo docker pull <image name>— завантаження існуючого образу додатка з репозиторія docker;sudo docker run <name>— запуск docker-додатка;sudo docker build <dockerfile>— створення образу додатка із docker-файлу;sudo docker ps— список активних docker-контейнерів в системі;sudo docker ps -a— список усіх docker-контейнерів в системі;sudo docker ps -a -f "id=XXXXXX"— вивести контейнер із заданим id;sudo docker stats— статистика використання системних ресурсів додатками docker;sudo docker logs <container id>— перегляд логів контейнера;sudo docker container logs --since 2022-05-16 <container id>— перегляд логів контейнера від вказаної дати;docker logs <container id> >& file.txt— зберегти усі логи контейнера в файл;sudo docker stop <container id>— зупинка контейнера;sudo docker start <container id>— запуск контейнера;sudo docker kill <container id>— вбити працюючий контейнер;sudo docker rm <container id/image name>— видалення контейнеру або образу;docker tag <existing image name> <new image name>— задати нове ім’я для образу docker;sudo docker login— ввійти в приватний репозиторій;
Які недоліки у Docker?
І все ж, у Docker є як плюси, так і мінуси. Ось деякі з них:
- Docker-контейнери можуть використовувати більше ресурсів операційної системи, порівняно зі звичайними програмами;
- Питання безпеки та захищеності Docker відкрите та стоїть на “порядку денному” в cybersecurity-спільноті. Тому не рекомендується завантажувати контейнери з ненадійних джерел, а також нехтувати правилами і засобами захисту Linux.
Корисні посилання
Автор: © Konrad Ravenstone, KR. Laboratories Research






