Docker — это платформа для разработки, доставки и запуска приложений в контейнерах:
# Основные команды Docker
docker pull nginx # Загрузка образа
docker run -p 80:80 nginx # Запуск контейнера
docker ps # Список запущенных контейнеров
docker stop container_id # Остановка контейнераDocker — это платформа, которая решает классическую проблему разработки: «У меня на компьютере работает, почему не работает на сервере?» Он позволяет упаковать приложение со всеми зависимостями в стандартизированный блок — контейнер. 🐳
Контейнеры — это легковесные, автономные, исполняемые пакеты программного обеспечения, которые включают всё необходимое для запуска приложения:
# Создание контейнера из образа
docker run --name my-app -d -p 3000:3000 my-app-imageDocker гарантирует, что приложение будет работать одинаково в любой среде:
# Запуск контейнера с монтированием локальной директории
docker run -v $(pwd):/app -p 8080:80 nginxВ отличие от виртуальных машин, контейнеры используют общее ядро операционной системы:
# Масштабирование с Docker Compose
docker-compose up -d --scale web=5Docker позволяет отслеживать версии образов и создавать микросервисную архитектуру:
# Тегирование образов
docker build -t my-app:1.0 .
docker build -t my-app:latest .Текстовый файл с инструкциями для сборки образа:
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]Шаблон только для чтения с инструкциями для создания контейнера:
# Сборка образа
docker build -t my-app .
# Просмотр образов
docker imagesЗапущенный экземпляр образа:
# Запуск контейнера
docker run -p 3000:3000 my-app
# Просмотр запущенных контейнеров
docker ps
# Остановка контейнера
docker stop container_idХранилище Docker-образов:
# Публикация образа в Docker Hub
docker push username/my-app:1.0
# Загрузка образа из Docker Hub
docker pull username/my-app:1.0# Запуск среды разработки
docker run -v $(pwd):/app -p 3000:3000 node:14 npm start# Запуск тестов в контейнере
docker run my-app npm test# Запуск в продакшн-режиме
docker run -d --restart=always -p 80:3000 my-app:1.0Инструмент для определения и запуска многоконтейнерных приложений:
# docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
db:
image: mongo
volumes:
- db-data:/data/db
volumes:
db-data:# Запуск всех сервисов
docker-compose up -dDocker — незаменимый инструмент современной разработки, который:
Используйте Docker для создания надежных, переносимых и масштабируемых приложений! 🚀