В этой статье мы разберём основную терминологию такого программного средства как Docker, научимся его использовать и подготовимся к интервью.
Docker - это открытая платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковать приложение в изолированную среду, которая включает в себя все необходимые зависимости, библиотеки и файлы системы для его работы. Это делает приложение портативным и легким для перемещения между различными средами.
Терминология (к собеседованию)
Основные термины в Docker:
- Image - образ контейнера, который содержит все необходимые компоненты для запуска приложения. Он является статичным, неизменяемым состоянием и используется для создания контейнера.
- Container - экземпляр образа, который запущен и работает в изолированной среде. Контейнер предоставляет среду выполнения для приложения, включая файловую систему, сеть и ресурсы.
- Dockerfile - специальный файл, который описывает шаги по созданию образа контейнера. В Dockerfile указывается, какие инструкции нужно выполнить, чтобы создать образ.
- Registry - репозиторий, который хранит образы контейнеров. Один из наиболее популярных Docker Registry - Docker Hub, но также можно использовать и свой собственный открытый или закрытый регистр.
- Volume - механизм в Docker для работы с данными в контейнере. Volumes позволяют сохранить и обмениваться данными между контейнерами и хостом.
- Network - способ соединения контейнеров друг с другом и внешним миром. Docker предоставляет различные типы сетей для организации коммуникации между контейнерами.
Эти основные термины помогают понять основные концепции Docker и как эффективно использовать его для создания и развертывания приложений в контейнерах.
Для того, чтобы запустить ваш проект в Docker, нужно создать образ, а затем запустить этот образ в контейнере. В таком репозитории как Docker Hub существует много стандартных образов (например, чистый "ubuntu" или образ "php" - это образ на базе Linux с установленным PHP). Благодаря образам из этого репозитория мы можем создать образ для нашего приложения не с нуля.
Создание своего образа Docker
Итак, как создать образ для нашего приложения, чтобы впоследствии запустить его в Docker-контейнере:
1. Создайте новый файл с названием Dockerfile в корне вашего проекта.
2. Начните Dockerfile с выбора базового образа. Например, если вам нужен образ с операционной системой Ubuntu, напишите:
FROM ubuntu:latest
4. Установите необходимые зависимости и программы в ваш образ с помощью команды RUN. Например, для установки Python и pip:
RUN apt-get update && apt-get install -y python3 python3-pip
5. Добавьте все файлы и папки из вашего проекта в контейнер с помощью команды ADD или COPY. Например:
ADD . /app
6. Укажите рабочую директорию с помощью команды WORKDIR. Например:
WORKDIR /app
7. Определите порт, который будет использоваться в контейнере, с помощью команды EXPOSE. Например:
EXPOSE 8080
8. Укажите команду, которая будет запускаться при запуске контейнера, с помощью команды CMD. Например, для запуска простого веб-сервера на порту 8080:
CMD ["python3", "-m", "http.server", "8080"]
9. Сохраните и закройте файл Dockerfile.
Запуск контейнера Docker
Теперь поговорим о сборке вашего образа и запуске контейнера.
1. Соберите Docker-образ с помощью команды docker build. Например:
docker build -t my_image .
2. Запустите контейнер с помощью команды docker run. Например:
docker run -p 8080:8080 my_image
Готово! Ваш Dockerfile создан и контейнер запущен.
Больше про разработку в телеграм-канале: https://t.me/uverenniy_dev