Контейнеризация API модели с Docker
Dockerfile для FastAPI и модели, многоэтапные сборки, конечная точка проверки работоспособности, docker-compose
«Контейнеризация API модели с Docker» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Зачем нужен Docker?
Докер упаковывает Ваш API, версию Python и все зависимости в один переносимый образ, который одинаково работает на любой машине. Это устраняет проблему «на моём компьютере работает» и является стандартным способом поставки служб машинного обучения.
Файл Docker
Файл Docker — это набор шагов сборки. Каждая инструкция создаёт кэшируемый слой, поэтому правильный порядок шагов ускоряет повторные сборки.
FROM python:3.11-slim
Строка FROM выбирает базовый образ. python:3.11-slim — небольшой образ Debian с предустановленным Python, значительно легче полного образа, поэтому он уменьшает итоговый размер и поверхность атаки.
FROM python:3.11-slimWORKDIR /app
WORKDIR задаёт рабочий каталог внутри контейнера; последующие команды COPY и RUN выполняются относительно него, благодаря чему пути остаются аккуратными.
WORKDIR /appСначала скопируйте requirements.txt
Сначала скопируйте только requirements.txt, а исходный код — позже. Поскольку Docker кэширует слои, зависимости переустанавливаются только при изменении файла requirements, а не после каждой правки кода, что значительно ускоряет повторную сборку.
COPY requirements.txt .RUN pip install --no-cache-dir
RUN выполняет команду сборки. --no-cache-dir отключает кэш загрузок pip, поэтому образ остаётся меньше (внутри образа этот кэш всё равно бесполезен).
RUN pip install --no-cache-dir -r requirements.txtКопирование исходного кода
Теперь скопируйте остальную часть приложения. Если сделать это после установки pip, изменение кода не инвалидирует кэшированный слой зависимостей.
COPY . .EXPOSE 8000
EXPOSE документирует порт, на котором контейнер принимает соединения. Сам порт эта инструкция не публикует (это выполняется во время запуска с помощью -p), но сообщает о назначении порта читателям и инструментам.
EXPOSE 8000Инструкция CMD
CMD задаёт команду по умолчанию, выполняемую при запуске контейнера. Здесь запускается Ювикорн с привязкой к 0.0.0.0, чтобы он был доступен за пределами контейнера.
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]Полный файл Docker
Все части в правильном порядке, удобном для кэширования:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]Сборка и запуск
Соберите образ с тегом, затем запустите его, сопоставив порт контейнера с портом хоста с помощью -p.
# terminal
docker build -t model-api .
docker run -p 8000:8000 model-apiБыстрая проверка
Проверьте свои знания Docker.
Повторение
Вы упаковали API в Docker: FROM python:3.11-slim, WORKDIR /app, сначала скопировали requirements.txt, выполнили RUN pip install --no-cache-dir, скопировали исходный код, добавили EXPOSE 8000 и CMD с запуском Ювикорна. Правильный порядок шагов для кэширования слоёв сохраняет высокую скорость повторных сборок. На этом завершаются курс обслуживания FastAPI и эта подборка материалов.
Часто задаваемые вопросы
Урок «Контейнеризация API модели с Docker» бесплатный?
Да — полный текст урока «Контейнеризация API модели с Docker» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Контейнеризация API модели с Docker»?
Dockerfile для FastAPI и модели, многоэтапные сборки, конечная точка проверки работоспособности, docker-compose Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Контейнеризация API модели с Docker»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы FastAPI для инженеров машинного обучения
- Схемы Pydantic для запросов и ответов
- Загрузка и предоставление моделей машинного обучения
- Контейнеризация API модели с Docker