Ръководство за начинаещи в 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 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 до ново ниво Винаги съм харесвал основната концепция на Obsid...

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

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

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

2026, не се насилвайте да бъдете "дисциплинирани"! Правете тези 8 малки неща и здравето ще дойде естественоHealth

2026, не се насилвайте да бъдете "дисциплинирани"! Правете тези 8 малки неща и здравето ще дойде естествено

2026, не се насилвайте да бъдете "дисциплинирани"! Правете тези 8 малки неща и здравето ще дойде естествено Нова година...

Майките, които се опитват да отслабнат, но не успяват, определено са попаднали тукHealth

Майките, които се опитват да отслабнат, но не успяват, определено са попаднали тук

Майките, които се опитват да отслабнат, но не успяват, определено са попаднали тук Март вече е наполовина, как върви тв...

📝
Technology

AI Browser 24小时稳定运行指南

AI Browser 24小时 стабилен режим на работа Този урок представя как да настроите стабилна, дългосрочна среда за работа с AI...