Ръководство за начинаещи в Docker: Бързо стартиране на контейнеризирането на вашето приложение

2/18/2026
6 min read

Ръководство за начинаещи в Docker: Бързо стартиране на контейнеризирането на вашето приложение

Docker се превърна в неразделна част от съвременната разработка и внедряване на софтуер. Въпреки огромните дискусии около Kubernetes, Docker остава предпочитаният инструмент за много компании за изграждане, тестване и внедряване на приложения. Тази статия ще ви преведе бързо през Docker, ще ви помогне да разберете основните му концепции и ще предостави практически пример, който да ви помогне да започнете да контейнеризирате вашето приложение.

Основни концепции на Docker

Преди да започнете да практикувате, е важно да разберете някои от основните концепции на Docker:

  • Образ (Image): Образът е шаблон само за четене, който съдържа всичко необходимо за стартиране на приложение: код, среда за изпълнение, системни инструменти, библиотеки и зависимости. Подобно на образ на виртуална машина, но по-лек.

  • Контейнер (Container): Контейнерът е работещ екземпляр, създаден от образ. Това е работещ екземпляр на образ, който съдържа приложението и всичките му зависимости. Контейнерите са изолирани един от друг и имат собствена файлова система, процеси и мрежово пространство.

  • Docker Hub: Docker Hub е публичен регистър на образи, от който можете да изтегляте предварително изградени образи или да качвате свои собствени образи. Подобно на GitHub, но специално за Docker образи.

  • Dockerfile: Dockerfile е текстов файл, който съдържа всички инструкции за изграждане на Docker образ. Чрез писане на Dockerfile можете да автоматизирате процеса на създаване на образ.

  • Docker Compose: Docker Compose е инструмент за дефиниране и стартиране на Docker приложения с множество контейнери. Той ви позволява да конфигурирате услугите на приложението с помощта на YAML файл и след това да стартирате или спирате всички услуги с една команда.

Инсталиране на Docker

Първо, трябва да инсталирате Docker. Docker предлага инсталационни пакети за различни операционни системи. Посетете официалния уебсайт на Docker и следвайте съответните инструкции за инсталиране.

След като инсталацията приключи, можете да проверите дали Docker е инсталиран правилно, като изпълните командата docker --version.

Контейнеризиране на просто Python приложение

Ще създадем просто Python приложение и ще го контейнеризираме с помощта на Docker.

1. Създаване на Python приложение

Създайте файл с име app.py, съдържащ следния код:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Docker!"

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0')

Това просто Flask приложение ще върне "Hello, Docker!" на коренния път /.

2. Създаване на requirements.txt файл

Приложението зависи от библиотеката Flask, трябва да създадем файл requirements.txt, за да декларираме тези зависимости.

Flask

3. Създаване на Dockerfile

Създайте файл с име Dockerfile и добавете следното съдържание:

# Използвайте официалния Python образ като базов образ
FROM python:3.9-slim-buster

# Задайте работна директория
WORKDIR /app

# Копирайте requirements.txt файла в работната директория
COPY requirements.txt .

# Инсталирайте зависимостите
RUN pip install --no-cache-dir -r requirements.txt
```# Копиране на кода на приложението в работната директория
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 образ:

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, за да ограничите използването на CPU и памет от контейнера.
  • Актуализирайте редовно изображенията: Поддържайте изображенията актуални, за да коригирате пропуски в сигурността.
  • Използвайте инструменти за сканиране на сигурността: Инструменти като Snyk, Clair и др. могат да бъдат интегрирани във вашия CI/CD процес, за да сканират автоматично изображенията за уязвимости.

ЗаключениеТози документ предоставя бързо ръководство за започване с Docker, обхващащо основни концепции, стъпки за инсталиране и прост пример за контейнеризация на Python приложение. Чрез изучаването на тези основи, можете да започнете да използвате Docker за изграждане, тестване и разгръщане на вашите приложения. Запомнете, че сигурността е от решаващо значение, винаги обръщайте внимание на сигурността на Docker образите и предприемайте подходящи мерки за защита на вашите приложения. Въпреки че Kubernetes е мощен в мащабна оркестрация на контейнери, Docker остава просто и ефективно решение в много сценарии. Овладявайки Docker, ще бъдете по-добре подготвени да се справите с предизвикателствата на съвременната разработка и разгръщане на софтуер.

Published in Technology

You Might Also Like

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

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

Как да използвате облачни технологии: Пълен наръчник за изграждане на вашата първа облачна инфраструктура Въведение С ус...

Предупреждение! Бащата на Claude Code открито заявява: След месец, без Plan Mode, титлата софтуерен инженер ще изчезнеTechnology

Предупреждение! Бащата на Claude Code открито заявява: След месец, без Plan Mode, титлата софтуерен инженер ще изчезне

Предупреждение! Бащата на Claude Code открито заявява: След месец, без Plan Mode, титлата софтуерен инженер ще изчезне ...

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

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

2026年 Top 10 深度学习资源推荐 С развитието на дълбокото обучение в различни области, все повече учебни ресурси и инструменти се ...

2026年 Top 10 AI 代理:核心卖点解析Technology

2026年 Top 10 AI 代理:核心卖点解析

2026年 Top 10 AI 代理:核心卖点解析 引言 С бързото развитие на изкуствения интелект, AI агенти (AI Agents) станаха гореща тема в тех...

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力Technology

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力 В днешния ден, когато технологиите напредват с бързи темпове, изкуственият интелект (AI...

2026年 Top 10 AWS工具和资源推荐Technology

2026年 Top 10 AWS工具和资源推荐

2026年 Top 10 AWS工具和资源推荐 В бързо развиващата се област на облачните изчисления, Amazon Web Services (AWS) винаги е била л...