Что такое образ Docker?
Образ Docker — это шаблон, который используется для создания контейнеров. Он включает в себя все необходимые зависимости и настройки, чтобы приложение могло работать в изолированной среде. Образы являются статическими, то есть они не изменяются после создания. Вместо этого, вы можете создавать контейнеры на основе образов и запускать разные экземпляры из одного и того же образа.
Каждый образ состоит из нескольких слоев, что позволяет эффективно управлять изменениями и хранить лишь те данные, которые были изменены. Каждый слой представляет собой файл, который вносит изменения, и Docker использует кэш для оптимизации.
Как создать образ Docker
Для создания образа Docker используется файл под названием Dockerfile
. Этот файл описывает, какие команды следует
выполнить для сборки образа. Вот простой пример Dockerfile
:
# Указываем базовый образ
FROM node:14
# Указываем текущую рабочую директорию
WORKDIR /usr/src/app
# Копируем package.json и package-lock.json
COPY package*.json ./
# Устанавливаем зависимости
RUN npm install
# Копируем остальные файлы приложения
COPY . .
# Открываем порт для приложения
EXPOSE 3000
# Запускаем приложение
CMD ["node", "app.js"]
Команды в Dockerfile
- FROM: Указывает базовый образ, на основе которого будет создаваться новый образ.
- WORKDIR: Устанавливает рабочую директорию внутри контейнера.
- COPY: Копирует файлы/директории из хоста в контейнер.
- RUN: Выполняет команды в процессе создания образа (например, установку зависимостей).
- EXPOSE: Указывает, какой порт должен быть открыт для взаимодействия.
- CMD: Определяет команду, которая будет выполняться при запуске контейнера.
Как собрать образ Docker
После создания Dockerfile
вы можете собрать образ с помощью команды:
docker build -t my-node-app .
Где -t my-node-app
задает тег для образа (в данном случае имя my-node-app
), а .
указывает, что Dockerfile
находится в текущем каталоге.
Как запустить контейнер из образа
После сборки образа, вы можете запустить его с помощью команды:
docker run -p 3000:3000 my-node-app
Здесь -p 3000:3000
связывает порт 3000 вашего хоста с портом 3000 контейнера, что позволяет получить доступ к
приложению через браузер по адресу http://localhost:3000
.
Заключение
Образы Docker — это фундаментальные строительные блоки для контейнеризации приложений. Они позволяют создавать управляемую и предсказуемую среду для разработки и развертывания. Использование образов облегчает совместное использование кода и согласованность между различными средами. Понимание образов Docker является важным шагом на пути к становлению полноценным фронтенд-разработчиком в современном мире.