Konteneryzacja API modelu za pomocą Dockera
Dockerfile dla FastAPI i modelu, kompilacje wieloetapowe, punkt końcowy kontroli stanu, docker-compose.
Konteneryzacja API modelu za pomocą Dockera to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Dlaczego Docker?
Docker pakuje API, wersję języka Python i wszystkie zależności w jeden przenośny obraz, który działa identycznie na każdej maszynie. Eliminuje problemy typu „u mnie działa” i jest standardowym sposobem dostarczania usług ML.
Dockerfile
Dockerfile to przepis zawierający kolejne kroki budowania. Każda instrukcja tworzy buforowaną warstwę, dlatego właściwa kolejność kroków przyspiesza ponowne kompilowanie obrazu.
FROM python:3.11-slim
Instrukcja FROM wybiera obraz bazowy. python:3.11-slim to niewielki obraz Debiana z preinstalowanym Pythonem, znacznie lżejszy od pełnego obrazu, co zmniejsza końcowy rozmiar i powierzchnię ataku.
FROM python:3.11-slimWORKDIR /app
WORKDIR ustawia katalog roboczy wewnątrz kontenera; kolejne polecenia COPY i RUN działają względem tego katalogu, dzięki czemu ścieżki pozostają uporządkowane.
WORKDIR /appNajpierw kopiowanie wymagań
Najpierw proszę skopiować sam plik requirements.txt, a dopiero potem kod źródłowy. Ponieważ Docker buforuje warstwy, zależności są instalowane ponownie tylko po zmianie wymagań, a nie przy każdej edycji kodu, co znacznie przyspiesza ponowne budowanie obrazu.
COPY requirements.txt .RUN pip install --no-cache-dir
RUN wykonuje polecenie budowania. Opcja --no-cache-dir pomija pamięć podręczną pobierania pip, dzięki czemu obraz pozostaje mniejszy (pamięć podręczna i tak jest w nim niepotrzebna).
RUN pip install --no-cache-dir -r requirements.txtKopiowanie kodu źródłowego
Teraz proszę skopiować pozostałą część aplikacji. Wykonanie tego po instalacji pip sprawia, że edycja kodu nie unieważnia buforowanej warstwy zależności.
COPY . .EXPOSE 8000
EXPOSE dokumentuje port, na którym kontener nasłuchuje. Nie publikuje samego portu (robi się to podczas uruchamiania za pomocą -p), ale sygnalizuje zamiar czytelnikom i narzędziom.
EXPOSE 8000Instrukcja CMD
CMD definiuje domyślne polecenie uruchamiane podczas startu kontenera. W tym przypadku uruchamiany jest uvicorn z powiązaniem z adresem 0.0.0.0, aby był dostępny spoza kontenera.
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]Kompletny Dockerfile
Wszystkie elementy we właściwej, przyjaznej dla buforowania kolejności:
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"]Budowanie i uruchamianie
Proszę zbudować obraz z tagiem, a następnie go uruchomić, mapując port kontenera na port hosta za pomocą -p.
# terminal
docker build -t model-api .
docker run -p 8000:8000 model-apiSzybki sprawdzian
Sprawdź swoją wiedzę na temat Dockera.
Podsumowanie
API umieszczono w kontenerze Docker: FROM python:3.11-slim, WORKDIR /app, najpierw skopiowano requirements.txt, wykonano RUN pip install --no-cache-dir, skopiowano kod źródłowy, dodano EXPOSE 8000 oraz CMD uruchamiające uvicorn. Właściwa kolejność kroków wykorzystująca buforowanie warstw przyspiesza ponowne budowanie obrazu. To kończy kurs udostępniania modeli za pomocą FastAPI oraz tę partię treści.
Często zadawane pytania
Czy lekcja „Konteneryzacja API modelu za pomocą Dockera” jest bezpłatna?
Tak — pełny tekst „Konteneryzacja API modelu za pomocą Dockera” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Konteneryzacja API modelu za pomocą Dockera”?
Dockerfile dla FastAPI i modelu, kompilacje wieloetapowe, punkt końcowy kontroli stanu, docker-compose. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Konteneryzacja API modelu za pomocą Dockera”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy FastAPI dla inżynierów ML
- Schematy Pydantic dla żądań i odpowiedzi
- Wczytywanie i udostępnianie modeli ML
- Konteneryzacja API modelu za pomocą Dockera