Руководство по 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 Buddy 修改指南:如何获得闪光传说级宠物

Claude Code Buddy 修改指南:如何获得闪光传说级宠物 2026年4月1日,Anthropic 在 Claude Code 2.1.89 版本中悄然上线了一个彩蛋功能——/buddy 宠物系统。在终端输入 /buddy 后,一...

Obsidian выпустил Defuddle, подняв Obsidian Web Clipper на новый уровеньTechnology

Obsidian выпустил Defuddle, подняв Obsidian Web Clipper на новый уровень

Obsidian выпустил Defuddle, подняв Obsidian Web Clipper на новый уровень Мне всегда нравилась основная идея Obsidian: п...

OpenAI внезапно объявила о "тройном объединении": браузер + программирование + ChatGPT, внутреннее признание ошибок прошлого годаTechnology

OpenAI внезапно объявила о "тройном объединении": браузер + программирование + ChatGPT, внутреннее признание ошибок прошлого года

OpenAI внезапно объявила о "тройном объединении": браузер + программирование + ChatGPT, внутреннее признание ошибок прош...

2026, больше не заставляйте себя "дисциплинироваться"! Сделайте эти 8 простых вещей, и здоровье придет само собойHealth

2026, больше не заставляйте себя "дисциплинироваться"! Сделайте эти 8 простых вещей, и здоровье придет само собой

2026, больше не заставляйте себя "дисциплинироваться"! Сделайте эти 8 простых вещей, и здоровье придет само собой Новый...

Тем мамам, которые стараются похудеть, но не могут, определенно стоит задуматься здесьHealth

Тем мамам, которые стараются похудеть, но не могут, определенно стоит задуматься здесь

Тем мамам, которые стараются похудеть, но не могут, определенно стоит задуматься здесь Март уже почти прошел, как у вас...

📝
Technology

AI Browser 24小时稳定运行指南

AI Browser 24小时稳定运行指南 Этот учебник описывает, как создать стабильную, долгосрочную среду для AI браузера. Подходит для A...