(описание предыдущего поста)
#### Шаг 1: Написание кода приложения
Начните с создания вашего приложения с использованием предпочитаемого языка программирования (например, Node.js, Python или Java).
Убедитесь, что все зависимости проекта чётко определены в конфигурационных файлах, таких как
package.json или requirements.txt.#### Шаг 2: Создание Dockerfile
Dockerfile — это шаблон, определяющий, как будет собираться ваш образ.Пример:
# Использование базового образа
FROM node:20
# Установка рабочего каталога
WORKDIR /app
# Копирование файлов проекта
COPY . .
# Установка зависимостей
RUN npm install
# Открытие порта приложения
EXPOSE 3000
# Команда для запуска приложения
CMD ["npm", "start"]
Этот файл гарантирует, что ваше приложение будет работать стабильно в любой среде.
#### Шаг 3: Сборка Docker-образа
Выполните команду для сборки вашего образа:
docker build -t myapp:latest .
Флаг
-t присваивает вашему образу имя и версию. Docker считывает инструкции из Dockerfile и создаёт повторно используемый образ.#### Шаг 4: Запуск Docker-контейнера
Используйте образ для запуска контейнера:
docker run -d -p 3000:3000 myapp:latest
Флаг
-d запускает контейнер в фоновом режиме.Флаг
-p сопоставляет порт контейнера с портом вашего локального компьютера. Приложение теперь доступно локально по адресу localhost:3000.#### Шаг 5: Управление контейнерами
- Список запущенных контейнеров:
docker ps
- Остановка контейнера:
docker stop <id_контейнера>
- Удаление контейнера:
docker rm <id_контейнера>
- Удаление образа:
docker rmi myapp:latest
#### Шаг 6: Использование Docker Compose (опционально)
Для приложений с несколькими контейнерами (например, приложение + база данных) используйте файл
docker-compose.yml.Пример:
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
db:
image: mongo
ports:
- "27017:27017"
Запуск всех сервисов:
docker-compose up -d
#### Шаг 7: Публикация образов в Docker Hub
- Вход в Docker Hub:
docker login
- Присваивание тега вашему образу:
docker tag myapp username/myapp:v1
- Публикация в Docker Hub:
docker push username/myapp:v1
Это позволяет другим пользователям (или вашему CI/CD конвейеру) загружать и развёртывать ваш образ.
#### Шаг 8: Развёртывание в продакшене
Используйте платформы вроде AWS ECS, Kubernetes или Docker Swarm для развёртывания в масштабе. Эти платформы загружают ваши образы и автоматически управляют оркестровкой контейнеров, сетью и масштабированием.