Docker – це платформа для розробки, доставки та запуску додатків у контейнерах. Контейнери – це уніфіковані середовища виконання, які дозволяють запускати додатки в ізольованому середовищі, що спрощує їх розробку, тестування та розгортання.
- Що таке Docker?
- Переваги використання Docker
- Встановлення Docker на Ubuntu та Centos
- Встановлення необхідних залежностей
- Додавання офіційного репозиторію Docker
- Встановлення Docker
- Приклади розгортання контейнерів Docker
- Запуск контейнера з веб-додатком
- Створення образу на основі Dockerfile
- Використання Docker Compose для розгортання множини контейнерів
- Використання Docker Swarm для розгортання контейнерів у кластері
- Висновок
Що таке Docker?
Docker (офіційний сайт: https://www.docker.com/) використовує технологію контейнеризації для упаковки додатків та їх залежностей у контейнери, які можна легко переносити між різними комп’ютерами та середовищами. Контейнери Docker можуть містити всі необхідні компоненти для запуску додатка, такі як операційна система, мовні бібліотеки, бази даних та інші залежності.
Docker також надає механізми для автоматизації збірки, тестування та розгортання додатків, що дозволяє значно спростити процес розробки та доставки програмного забезпечення. Завдяки своїй гнучкості та простоті у використанні, Docker став однією з найпопулярніших платформ для контейнеризації додатків у світі.
Переваги використання Docker
Використання Docker має низку переваг, серед яких:
- Ізоляція: контейнери Docker забезпечують ізоляцію додатків та їх залежностей, що спрощує процес розробки, тестування та розгортання.
- Переносимість: контейнери Docker можна легко переносити між різними середовищами, такими як локальний комп’ютер, тестовий сервер чи хмарна платформа.
- Зручність: Docker надає механізми для автоматизації збірки, тестування та розгортання додатків, що спрощує процес розробки та доставки програмного забезпечення.
- Ефективність: використання контейнерів Docker дозволяє максимально ефективно використовувати ресурси сервера та зменшити навантаження на систему.
Встановлення Docker на Ubuntu та Centos
Встановлення Docker є простим та здійснюється зі стандартних репозиторіїв apt-get та yum в залежності від операційної системи. Для встановлення Docker на Ubuntu 22.04 та Centos 8 необхідно виконати наступні дії:
Встановлення необхідних залежностей
На Ubuntu 22.04:
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
На Centos 8:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Додавання офіційного репозиторію Docker
На Ubuntu 22.04:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
На Centos 8:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Встановлення Docker
Виконаємо безпосередньо встановлення Docker з репозиторіїв apt-get або yum залежно від вашої операційної системи:
На Ubuntu 22.04:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
На Centos 8:
sudo yum install -y docker-ce docker-ce-cli containerd.io
На цьому встановлення Docker на ваш сервер завершено. Для перевірки, вам необхідно виконати команду:
sudo docker run hello-world
Приклади розгортання контейнерів Docker
Контейнеризація додатків за допомогою Docker дозволяє легко розгорнути та керувати додатками в ізольованих контейнерах. Ось кілька прикладів того, як можна використовувати Docker для розгортання контейнерів.
Запуск контейнера з веб-додатком
Пошук образу в Docker Hub:
docker search web-app
Завантаження образу:
docker pull web-app:latest
Запуск контейнера:
docker run -p 80:8080 --name my-web-app web-app:latest
Створення образу на основі Dockerfile
Dockerfile – це текстовий файл, який містить інструкції зі створення образу Docker. Цей файл описує, які дії потрібно виконати для створення образу, включаючи встановлення залежностей, налаштування оточення, копіювання файлів, запуск команд тощо. Ось приклад простого Dockerfile для створення образу з веб-додатком на базі Node.js:
# Використання образу Node.js версії 14.x як основи FROM node:14 # Створення директорії додатка WORKDIR /app # Встановлення залежностей COPY package*.json ./ RUN npm install # Копіювання файлів додатка в контейнер COPY . . # Визначення команди для запуску додатка CMD [ "npm", "start" ] # Визначення порту, який буде використовуватися додатком EXPOSE 3000
Цей Dockerfile описує наступні дії:
- Базовий образ: використання образу Node.js версії 14.x як основи для створення нового образу.
- Створення директорії додатка: створення нової директорії /app всередині контейнера та встановлення її як робочої директорії для всіх подальших команд.
- Встановлення залежностей: копіювання файлів package.json та package-lock.json у контейнер та виконання команди npm install для встановлення всіх залежностей додатка.
- Копіювання файлів додатка: копіювання всіх файлів та директорій з поточного каталогу (де знаходиться Dockerfile) у контейнер у директорію /app.
- Визначення команди для запуску додатка: визначення команди npm start як команди, яка буде запускатися в контейнері при старті контейнера.
- Визначення порту: визначення порту 3000, який буде використовуватися додатком всередині контейнера.
Щоб створити образ на основі цього Dockerfile, необхідно виконати команду docker build з вказанням шляху до каталогу, в якому знаходиться Dockerfile:
docker build -t my-web-app:latest
Ця команда створить новий образ з тегом my-web-app:latest на основі Dockerfile, який знаходиться в поточному каталозі. Образ буде містити всі залежності, необхідні для роботи додатка, а також команду для запуску додатка при старті контейнера.
Після створення образу можна запустити контейнер за допомогою команди docker run:
docker run -p 80:8080 --name my-web-app my-web-app:latest
Використання Docker Compose для розгортання множини контейнерів
- Створення файлу docker-compose.yml з описом контейнерів.
- Запуск контейнерів:
docker-compose up -d
Використання Docker Swarm для розгортання контейнерів у кластері
- Ініціалізація Swarm:
docker swarm init
- Створення сервісу:
docker service create --name my-web-app --replicas 3 web-app:latest
Це лише деякі приклади того, як можна використовувати Docker для розгортання контейнерів. Залежно від ваших потреб, ви можете використовувати Docker для розгортання додатків будь-якого типу та складності, використовуючи величезну кількість готових образів, що надаються в Docker Hub.
Крім того, вам також буде цікаво ознайомитися з GitHub та прикладами його використання.
Висновок
Docker – це потужний інструмент для контейнеризації додатків, який забезпечує ізоляцію, переносимість, зручність та ефективність. Встановлення Docker на Ubuntu та Centos є простим і займає лише кілька кроків. За допомогою Docker можна легко розгортати додатки в контейнерах, використовувати Kubernetes для керування контейнерами та Docker Compose для розгортання множини контейнерів. Якщо ви не використовуєте Docker, ви втрачаєте безліч можливостей для спрощення процесу розробки, тестування та розгортання додатків.