Wdrażanie aplikacji wielousługowych
Wdróż aplikację full-stack z bazą danych i usługą backendową za pomocą Docker Compose.
Wdrażanie aplikacji wielousługowych to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 3 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Wdrażanie aplikacji z wieloma usługami
Witamy! W tej lekcji nauczą się Państwo uruchamiać aplikację full-stack za pomocą Docker Compose.
Zobaczą Państwo, jak definiować wiele usług, takich jak aplikacja internetowa i baza danych, a następnie wdrażać je i zarządzać nimi razem.

Nasz przykład: aplikacja internetowa i baza danych
Wdrożymy prostą aplikację internetową, która łączy się z bazą danych. Jest to typowa konfiguracja w wielu rzeczywistych aplikacjach.
- Usługa internetowa: aplikacja Python Flask udostępniająca podstawową stronę internetową.
- Usługa bazy danych: baza PostgreSQL przechowująca dane.
Docker Compose ułatwia orkiestrację tych dwóch usług!
Tworzenie obrazu aplikacji internetowej
Nasza usługa internetowa potrzebuje własnego obrazu Docker. Oto uproszczony plik Dockerfile, który buduje naszą aplikację Python Flask.
Instaluje on Flask oraz konektor PostgreSQL, a następnie uruchamia plik app.py.
FROM python:3.9-slim-buster
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir flask psycopg2-binary
EXPOSE 5000
CMD ["python", "app.py"]Plik `docker-compose.yml`
Ten plik docker-compose.yml definiuje nasze dwie usługi: web i db. Proszę zwrócić uwagę, że usługa web jest budowana na podstawie naszego pliku Dockerfile i łączy się z usługą db za pomocą zmiennych środowiskowych.
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
environment:
DB_HOST: db
DB_NAME: mydatabase
DB_USER: user
DB_PASSWORD: password
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:Uruchamianie usług
Aby uruchomić wszystkie usługi zdefiniowane w pliku docker-compose.yml, należy użyć polecenia docker compose up.
Flaga -d uruchamia kontenery w trybie „detached”, czyli w tle.
# This command starts your multi-service app
# and runs it in the background.
docker compose up -dSprawdzanie uruchomionych kontenerów
Po uruchomieniu polecenia docker compose up -d warto sprawdzić, czy wszystkie usługi działają zgodnie z oczekiwaniami.
Polecenie docker compose ps wyświetla listę usług, ich stan oraz porty.
# Check the status of your services
docker compose psŁączenie się z aplikacją
Po uruchomieniu usług można uzyskać dostęp do aplikacji internetowej.
- Proszę otworzyć przeglądarkę internetową.
- Proszę przejść do adresu
http://localhost:5000.
Powinni Państwo zobaczyć komunikat z naszej aplikacji Flask potwierdzający jej połączenie z bazą PostgreSQL!
Skalowanie usług
Jedną z przydatnych funkcji Docker Compose jest skalowanie usług. Jeśli aplikacja internetowa musi obsługiwać większy ruch, można łatwo zwiększyć liczbę instancji usługi internetowej.
Należy użyć flagi --scale wraz z poleceniem docker compose up.
# Scale the 'web' service to 3 instances
docker compose up --scale web=3 -dZatrzymywanie i usuwanie usług
Po zakończeniu pracy z aplikacją można zatrzymać i usunąć wszystkie usługi oraz ich sieci zdefiniowane w pliku docker-compose.yml.
Polecenie docker compose down wykona to czyszczenie za Państwa.
# Stop and remove all services
docker compose downSzybkie sprawdzenie
Proszę przypomnieć sobie używany przez nas plik docker-compose.yml. Właśnie uruchomili Państwo aplikację za pomocą polecenia docker compose up -d.
Jakie jest podstawowe polecenie służące do zatrzymania i usunięcia wszystkich uruchomionych usług oraz powiązanych z nimi zasobów?
Podsumowanie i dalsze kroki
Świetnie! Nauczyli się Państwo wdrażać aplikację z wieloma usługami i zarządzać nią za pomocą Docker Compose.
- Zdefiniowaliśmy usługi w pliku
docker-compose.yml. - Użyliśmy polecenia
docker compose up -d, aby uruchomić usługi. - Sprawdziliśmy stan za pomocą polecenia
docker compose ps. - Skalowaliśmy usługi i użyliśmy polecenia
docker compose downdo sprzątania.
To podstawowa umiejętność przy lokalnym tworzeniu i testowaniu złożonych aplikacji!
Często zadawane pytania
Czy lekcja „Wdrażanie aplikacji wielousługowych” jest bezpłatna?
Tak — pełny tekst „Wdrażanie aplikacji wielousługowych” 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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Wdrażanie aplikacji wielousługowych”?
Wdróż aplikację full-stack z bazą danych i usługą backendową za pomocą Docker Compose. Ćwiczysz DevOps Bootcamp 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ąć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp 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 3 z 4.
Ile czasu zajmuje lekcja „Wdrażanie aplikacji wielousługowych”?
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 DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp 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
- Czym jest Docker Compose?
- Pisanie pliku Compose
- Wdrażanie aplikacji wielousługowych
- Zmienne środowiskowe i pliki .env