Зображення з Pinterest
Уявіть, що Петро хоче будувати квартири в різних місцях, кожна з яких містить кілька будинків з однаковим дизайном. Петро наймає архітектора для створення проекту будинку. Цей проект використовується для будівництва ідентичних будинків у різних місцях.
У DevOps цей проект є подібним до Docker-образу, який містить усі необхідні інструкції та залежності для створення та запуску програми.
Так само, як Петро використовує проект для будівництва кількох ідентичних будинків, Docker-образ використовується для створення багатьох контейнерів, кожен з яких представляє собою робочий екземпляр програми. Контейнер — це як будинок, побудований з образу, він містить програму, її залежності та середовище, все упаковано в портативну одиницю, яка може працювати на будь-якій системі. Іншими словами, контейнер — це «коробка», яка є виконуваною та містить програму з усіма її залежностями.
Контейнеризація — це процес упаковки програми та всіх її залежностей у «контейнер» або «портативну коробку», яка працює на будь-якій платформі.
Docker — це інструмент для контейнеризації, який дозволяє розробникам упаковувати, розгортати та запускати програми в легких контейнерах, забезпечуючи стабільність програми та її ефективність у різних середовищах.
Dockerfile — це файл, який містить кроки, що використовуються для створення docker-образу. Приклад простого Dockerfile для Node.js:
FROM node:alpine
WORKDIR /app
COPY package.json package.json
RUN npm install
COPY . .
CMD ["npm", "start"]
Простий життєвий цикл docker
- docker build -> Дозволяє створювати docker-образ з Dockerfile
- docker run -> Дозволяє запускати контейнер з docker-образу
- docker push -> Завантажує docker-образ на DockerHub
Основні команди docker
sudo apt install docker -> Встановлює Docker
sudo systemctl status docker -> Перевіряє, чи працює та активний Docker
docker --version -> Виводить поточну версію Docker
nano Dockerfile -> Створює Dockerfile та дозволяє писати в нього
docker ps -> Показує тільки працюючі контейнери
docker ps -a -> Показує всі контейнери, як працюючі, так і зупинені
docker start -> Запускає конкретний контейнер
docker stop -> Зупиняє конкретний працюючий контейнер
docker help -> Виводить основний синтаксис для виконання команд Docker
docker build -t :version . -> Створює образ
docker images або docker image ls -> Показує всі створені образи
docker prune -a -> Видаляє невикористовувані образи
docker run - - name - p 8000:8000(port_example) :version -> Створює контейнер
docker push -> Завантажує створений образ на DockerHub
Переваги контейнерів Docker
- Легко працювати з контейнерами. Вони легкі та легко переносні.
- Контейнери не потребують великого простору для зберігання.
- Використання контейнерів усуває знамениту фразу розробників: «це працює на моєму комп’ютері».
- Ви можете створювати стільки контейнерів, скільки хочете, з одного образу.
- Старт і зупинка контейнерів займає кілька секунд.
- Контейнери дозволяють користувачам запускати та встановлювати складні програми без необхідності турбуватися про налаштування або зустрічати численні помилки під час встановлення.
- Легше запускати контейнери на різних платформах.
Перекладено з: What is Docker ? >>simplified version