0Pricing
Docker & DevOps Fundamentals · Lekcja

Podstawy sieci kontenerów

Poznaj domyślną sieć Dockera i sieci mostkowe oraz dowiedz się, jak kontenery odnajdują się nawzajem.

Podstawy sieci kontenerów to bezpłatna lekcja Docker & DevOps Fundamentals na CoddyKit. To lekcja 1 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 Docker & DevOps Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.

Dlaczego sieci kontenerów?

Kontenery są z założenia odizolowane, co zapewnia bezpieczeństwo i przenośność. Aby jednak aplikacje były użyteczne, często muszą komunikować się ze sobą oraz ze światem zewnętrznym.

Właśnie do tego służy sieć Docker! Umożliwia kontenerom bezpieczną i wydajną komunikację.

Podstawy sieci kontenerów — ilustracja 1

Domyślna sieć bridge Docker

Po uruchomieniu kontenera bez określenia sieci Docker automatycznie podłącza go do domyślnej sieci bridge. Ta sieć nosi nazwę bridge.

Kontenery w tej sieci mogą komunikować się ze sobą za pomocą adresów IP, a także uzyskują dostęp do Internetu.

Sprawdzanie sieci Docker

Możesz łatwo wyświetlić wszystkie sieci Docker dostępne w systemie. Polecenie docker network ls wyświetla ich listę, a docker network inspect pokazuje szczegółową konfigurację wybranej sieci.

Spróbuj wyświetlić listę swoich sieci:

docker network ls

Adresy IP kontenerów

Każdemu kontenerowi podłączonemu do sieci bridge (domyślnej lub zdefiniowanej przez użytkownika) serwer wewnętrznego DNS Docker przypisuje unikalny adres IP.

Ten adres IP umożliwia innym kontenerom w tej samej sieci nawiązanie połączenia z danym kontenerem. Sprawdźmy adres IP kontenera:

docker run --rm -it alpine ip a

Komunikacja w domyślnej sieci bridge

W domyślnej sieci bridge kontenery mogą komunikować się ze sobą za pomocą przypisanych adresów IP. Adresy IP mogą się jednak zmieniać, przez co ta metoda jest mniej niezawodna w przypadku dynamicznych aplikacji.

W celu lepszego wykrywania kontenerów i komunikacji za pomocą nazw nowoczesnym i preferowanym rozwiązaniem są sieci bridge zdefiniowane przez użytkownika.

Sieci bridge zdefiniowane przez użytkownika

Sieci bridge zdefiniowane przez użytkownika oferują znaczące korzyści w porównaniu z domyślną siecią bridge:

  • Automatyczne rozpoznawanie DNS: Kontenery w tej samej sieci zdefiniowanej przez użytkownika mogą odnajdywać się nawzajem za pomocą nazwy usługi (nazwy kontenera).
  • Lepsza izolacja: Zapewniają lepszą izolację aplikacji.
  • Możliwość konfiguracji: Dają większą kontrolę nad ustawieniami sieci.

Demo: komunikacja za pomocą nazwy

Utwórzmy niestandardową sieć, uruchommy na niej serwer WWW Nginx, a następnie użyjmy innego kontenera, aby uzyskać dostęp do serwera Nginx za pomocą jego nazwy. Zobacz, jakie to proste!

docker network create my-app-net
docker run -d --name webserver --network my-app-net nginx
docker run --rm --network my-app-net alpine sh -c "apk add curl && curl -s http://webserver"
docker rm -f webserver
docker network rm my-app-net

Udostępnianie portów hostowi

Aby uzyskać dostęp do usługi kontenera z komputera hosta lub z sieci zewnętrznej, należy „opublikować” lub „zmapować” jej port za pomocą flagi -p lub --publish.

Na przykład -p 8080:80 mapuje port 8080 hosta na port 80 kontenera.

docker run -d --name my-webserver -p 8080:80 nginx
# To check, open http://localhost:8080 in your browser
# Then, clean up the container:
docker rm -f my-webserver

Inne sterowniki sieciowe

Oprócz sieci bridge Docker oferuje inne sterowniki sieciowe przeznaczone do konkretnych zastosowań:

  • Host: Kontener współdzieli stos sieciowy hosta, tracąc izolację.
  • None: Kontener nie ma interfejsów sieciowych.
  • Overlay: Używany przez Docker Swarm do umożliwienia komunikacji między wieloma demonami Docker działającymi na różnych hostach.

Każdy sterownik służy innemu celowi w zależności od scenariusza wdrożenia.

Wyzwanie: sieci

Które stwierdzenia dotyczące domyślnej sieci bridge Docker oraz sieci bridge zdefiniowanych przez użytkownika są prawdziwe?

Podsumowanie: podstawy sieci

Omówiliśmy podstawy sieci Docker:

  • Domyślna sieć bridge umożliwia kontenerom komunikację za pomocą adresów IP.
  • Sieci bridge zdefiniowane przez użytkownika są preferowane ze względu na automatyczne rozpoznawanie DNS na podstawie nazwy oraz lepszą izolację.
  • Dowiedzieliśmy się, jak umożliwić kontenerom komunikację między sobą oraz jak udostępniać porty kontenerów hostowi.
  • Krótko omówiliśmy też inne sterowniki sieciowe, takie jak host i overlay.

Zrozumienie sieci ma kluczowe znaczenie podczas tworzenia połączonych aplikacji skonteneryzowanych. W następnej części zajmiemy się zarządzaniem trwałymi danymi za pomocą woluminów Docker!

Często zadawane pytania

Czy lekcja „Podstawy sieci kontenerów” jest bezpłatna?

Tak — pełny tekst „Podstawy sieci kontenerów” 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 Docker & DevOps Fundamentals, przejdź na CoddyKit PRO. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.

Co nauczysz się w „Podstawy sieci kontenerów”?

Poznaj domyślną sieć Dockera i sieci mostkowe oraz dowiedz się, jak kontenery odnajdują się nawzajem. Ćwiczysz Docker & DevOps Fundamentals 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ąć Docker & DevOps Fundamentals?

Nie wymagamy żadnego doświadczenia. Docker & DevOps Fundamentals 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 1 z 4.

Ile czasu zajmuje lekcja „Podstawy sieci kontenerów”?

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 Docker & DevOps Fundamentals?

Tak. Każda lekcja Docker & DevOps Fundamentals 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

  1. Podstawy sieci kontenerów
  2. Wolumeny Docker do przechowywania danych
  3. Montowania bind i tmpfs
  4. Niestandardowe sieci bridge i wykrywanie usług
← Powrót do Docker & DevOps Fundamentals