Руководство по Docker для начинающих: быстрое начало контейнеризации ваших приложений

2/18/2026
5 min read

markdown\n# Руководство по Docker для начинающих: быстрое начало контейнеризации ваших приложений\n\nDocker стал неотъемлемой частью современной разработки и развертывания программного обеспечения. Несмотря на то, что вокруг Kubernetes идут оживленные дискуссии, Docker остается предпочтительным инструментом для многих компаний для сборки, тестирования и развертывания приложений. Эта статья проведет вас через быстрый старт с Docker, поможет понять его основные концепции и предоставит практический пример, который поможет вам начать контейнеризацию ваших приложений.\n\n## Основные концепции Docker\n\nПрежде чем начать практиковаться, важно понять некоторые основные концепции Docker:\n\n* **Образ (Image):** Образ — это шаблон только для чтения, который содержит все необходимое для запуска приложения: код, среду выполнения, системные инструменты, библиотеки и зависимости. Похож на образ виртуальной машины, но более легкий.\n\n* **Контейнер (Container):** Контейнер — это работающий экземпляр, созданный из образа. Это экземпляр образа во время выполнения, который содержит приложение и все его зависимости. Контейнеры изолированы друг от друга и имеют собственную файловую систему, процессы и сетевое пространство.\n\n* **Docker Hub:** Docker Hub — это общедоступный репозиторий образов, из которого можно загружать предварительно созданные образы или загружать свои собственные. Похож на GitHub, но специально для образов Docker.\n\n* **Dockerfile:** Dockerfile — это текстовый файл, содержащий все инструкции для сборки образа Docker. Написав Dockerfile, вы можете автоматизировать процесс создания образа.\n\n* **Docker Compose:** Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Он позволяет настраивать службы приложения с помощью YAML-файла, а затем запускать или останавливать все службы одной командой.\n\n## Установка Docker\n\nСначала вам нужно установить Docker. Docker предоставляет установочные пакеты для различных операционных систем. Посетите [официальный сайт Docker](https://www.docker.com/get-started/) и следуйте соответствующим инструкциям для установки.\n\nПосле завершения установки вы можете проверить, правильно ли установлен Docker, выполнив команду `docker --version`.\n\n## Контейнеризация простого приложения Python\n\nМы создадим простое приложение Python и контейнеризируем его с помощью Docker.\n\n### 1. Создание приложения Python\n\nСоздайте файл с именем `app.py`, содержащий следующий код:\n\npython\nfrom flask import Flask\napp = Flask(name)\n\n@app.route(# 将应用程序代码复制到工作目录 COPY app.py .

暴露端口 5000

EXPOSE 5000

定义启动命令

CMD ["python", "app.py"]


**Dockerfile 说明:**

*   `FROM python:3.9-slim-buster`:  Указывает базовый образ как облегченную версию Python 3.9.
*   `WORKDIR /app`:  Устанавливает рабочую директорию внутри контейнера как `/app`.
*   `COPY requirements.txt .`:  Копирует файл `requirements.txt` из текущей директории в директорию `/app` контейнера.
*   `RUN pip install --no-cache-dir -r requirements.txt`:  Запускает команду `pip` внутри контейнера для установки зависимостей, указанных в файле `requirements.txt`.  Параметр `--no-cache-dir` позволяет уменьшить размер образа.
*   `COPY app.py .`:  Копирует файл `app.py` из текущей директории в директорию `/app` контейнера.
*   `EXPOSE 5000`:  Объявляет, что контейнер будет прослушивать порт 5000.
*   `CMD ["python", "app.py"]`:  Определяет команду, которая будет выполнена при запуске контейнера.

### 4. 构建 Docker 镜像

В директории, содержащей `Dockerfile`, выполните следующую команду для сборки Docker-образа:

```bash
docker build -t my-python-app .
  • docker build: Команда для сборки образа.
  • -t my-python-app: Указывает имя для образа (my-python-app).
  • .: Указывает директорию, в которой находится Dockerfile (текущая директория).

Процесс сборки может занять некоторое время, в зависимости от скорости сети и размера зависимостей.

5. 运行 Docker 容器

Используйте следующую команду для запуска Docker-контейнера:

docker run -d -p 5000:5000 my-python-app
  • docker run: Команда для запуска контейнера.
  • -d: Запускает контейнер в отсоединенном режиме (работает в фоновом режиме).
  • -p 5000:5000: Сопоставляет порт 5000 хост-машины с портом 5000 контейнера.
  • my-python-app: Указывает имя образа, который нужно использовать.

6. 验证应用程序

Откройте http://localhost:5000 в браузере, и вы должны увидеть "Hello, Docker!"

7. 停止和删除容器

Используйте следующую команду для остановки контейнера:

docker stop 

`` Можно посмотреть с помощью команды docker ps.

Используйте следующую команду для удаления контейнера:

docker rm 

Docker Compose 入门

Если ваше приложение состоит из нескольких сервисов, вы можете использовать Docker Compose для управления ими.

1. 创建 docker-compose.yml 文件

Создайте файл с именем docker-compose.yml и добавьте следующее содержимое:

version: "3.9"
services:
  web:
    image: my-python-app
    ports:
      - "5000:5000"

docker-compose.yml 说明:

  • version: "3.9": Указывает версию файла Docker Compose.
  • services: Определяет сервисы приложения.
  • web: Определяет сервис с именем "web".
  • image: my-python-app: Указывает образ, используемый сервисом.
  • ports: Определяет отображение портов.

2. Запуск приложения

В каталоге, содержащем файл docker-compose.yml, выполните следующую команду для запуска приложения:

docker-compose up -d
  • docker-compose up: Команда для запуска приложения.
  • -d: Запускает контейнер в отсоединенном режиме.

3. Остановка приложения

Используйте следующую команду для остановки приложения:

docker-compose down

Лучшие практики безопасности Docker

Как видно из обсуждения, безопасность образов Docker является важной проблемой. Вот некоторые лучшие практики безопасности Docker:

  • Используйте официальные образы: По возможности используйте официально предоставленные образы, которые обычно проходят сканирование безопасности и обслуживание.
  • Сканируйте образы на наличие уязвимостей: Используйте такие инструменты, как Trivy, для сканирования образов на наличие известных уязвимостей и своевременно обновляйте образы.
  • Используйте принцип минимальных привилегий: Избегайте запуска контейнеров от имени пользователя root.
  • Ограничивайте ресурсы контейнера: Используйте cgroups для ограничения использования ЦП и памяти контейнером.
  • Регулярно обновляйте образы: Поддерживайте образы в актуальном состоянии, чтобы исправить уязвимости безопасности.
  • Используйте инструменты сканирования безопасности: Такие инструменты, как Snyk, Clair и т. д., можно интегрировать в ваш CI/CD процесс для автоматического сканирования образов на наличие уязвимостей.

ЗаключениеВ этой статье представлено краткое руководство по Docker, охватывающее основные понятия, шаги установки и пример контейнеризации простого приложения Python. Изучив эти основы, вы можете начать использовать Docker для сборки, тестирования и развертывания своих приложений. Помните, что безопасность имеет первостепенное значение, всегда обращайте внимание на безопасность образов Docker и принимайте соответствующие меры для защиты своих приложений. Хотя Kubernetes является мощным инструментом для крупномасштабной оркестровки контейнеров, Docker во многих случаях остается простым и эффективным решением. Освоив Docker, вы сможете лучше справляться с задачами современной разработки и развертывания программного обеспечения.

Published in Technology

You Might Also Like

Как использовать технологии облачных вычислений: Полное руководство по созданию вашей первой облачной инфраструктурыTechnology

Как использовать технологии облачных вычислений: Полное руководство по созданию вашей первой облачной инфраструктуры

Как использовать технологии облачных вычислений: Полное руководство по созданию вашей первой облачной инфраструктуры Вве...

Предупреждение! Отец Claude Code прямо говорит: через месяц без режима планирования титул программиста исчезнетTechnology

Предупреждение! Отец Claude Code прямо говорит: через месяц без режима планирования титул программиста исчезнет

Предупреждение! Отец Claude Code прямо говорит: через месяц без режима планирования титул программиста исчезнет Недавно...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习资源推荐 随着深度学习在各个领域的迅速发展,越来越多的学习资源和工具涌现出来。本文将为您推荐2026年最值得关注的十个深度学习资源,帮助您在这一领域中快速成长。 1. Coursera Deep Learn...

Топ 10 AI агентов 2026 года: анализ ключевых преимуществTechnology

Топ 10 AI агентов 2026 года: анализ ключевых преимуществ

Топ 10 AI агентов 2026 года: анализ ключевых преимуществ Введение С быстрым развитием искусственного интеллекта AI агент...

Рекомендации по 10 лучшим инструментам ИИ на 2026 год: раскрытие истинного потенциала искусственного интеллектаTechnology

Рекомендации по 10 лучшим инструментам ИИ на 2026 год: раскрытие истинного потенциала искусственного интеллекта

Рекомендации по 10 лучшим инструментам ИИ на 2026 год: раскрытие истинного потенциала искусственного интеллекта В эпоху ...

Топ 10 инструментов и ресурсов AWS на 2026 годTechnology

Топ 10 инструментов и ресурсов AWS на 2026 год

Топ 10 инструментов и ресурсов AWS на 2026 год В быстро развивающейся области облачных вычислений Amazon Web Services (A...