Найти тему
Уверенный.dev

Шпаргалка по Docker для начинающих (и не только)

Оглавление

В этой статье мы разберём основную терминологию такого программного средства как Docker, научимся его использовать и подготовимся к интервью.

Docker - это открытая платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковать приложение в изолированную среду, которая включает в себя все необходимые зависимости, библиотеки и файлы системы для его работы. Это делает приложение портативным и легким для перемещения между различными средами.

Терминология (к собеседованию)

Основные термины в Docker:

  1. Image - образ контейнера, который содержит все необходимые компоненты для запуска приложения. Он является статичным, неизменяемым состоянием и используется для создания контейнера.
  2. Container - экземпляр образа, который запущен и работает в изолированной среде. Контейнер предоставляет среду выполнения для приложения, включая файловую систему, сеть и ресурсы.
  3. Dockerfile - специальный файл, который описывает шаги по созданию образа контейнера. В Dockerfile указывается, какие инструкции нужно выполнить, чтобы создать образ.
  4. Registry - репозиторий, который хранит образы контейнеров. Один из наиболее популярных Docker Registry - Docker Hub, но также можно использовать и свой собственный открытый или закрытый регистр.
  5. Volume - механизм в Docker для работы с данными в контейнере. Volumes позволяют сохранить и обмениваться данными между контейнерами и хостом.
  6. 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