Przejdź do treści stopki
KORZYSTANIE Z IRONSECUREDOC

Sieć Docker Compose (jak działa dla programistów)

Czym jest Docker?

Docker to platforma typu open source, która wykorzystuje koncepcje oparte na kontenerach do automatyzacji wdrażania i skalowania aplikacji w lekkich, przenośnych kontenerach. Mówiąc prościej, kontener Docker łączy cały kod aplikacji i jej zależności w jedną jednostkę, spójną we wszystkich środowiskach — od laptopa programisty po serwer testowy lub produkcyjne serwery w chmurze.

Sieć Docker Compose (jak działa dla programistów): Rysunek 1

Kontenery nie działają jak tradycyjne maszyny wirtualne (VM), ponieważ współdzielą jądro systemu operacyjnego systemu hosta. Dlatego kontenery są znacznie wydajniejsze i szybciej się uruchamiają. Rzeczywiście, kontenery Docker gwarantują spójne działanie na wszystkich etapach cyklu rozwoju.

W rzeczywistości obrazy Docker to szablony opisów kontenerów, w których znajduje się środowisko aplikacji. Zestaw ten zawiera również zestawy narzędzi do zarządzania cyklem życia kontenerów. Jednym z przykładów jest Docker Compose, którego można używać do koordynowania aplikacji składających się z wielu kontenerów. Jest też Docker Hub, rejestr służący do udostępniania obrazów.

Czym są sieci Docker Compose?

Sieci Docker Compose umożliwiają usługom działającym w aplikacji Docker Compose komunikowanie się ze sobą w ramach tych samych hermetycznych środowisk. Jeśli zdefiniujesz więcej niż jedną usługę w pliku docker-compose.yml, Docker Compose automatycznie utworzy domyślną sieć, dzięki czemu usługi te będą mogły komunikować się ze sobą, używając nazw usług jako nazw hostów. Zasadniczo pozwala to użytkownikowi zdefiniować własną sieć i wiele usług w ramach utworzonej sieci.

Domyślna sieć mostkowa: Jeśli podczas uruchamiania docker-compose up nie zdefiniujesz sieci dla swoich kontenerów, Docker automatycznie utworzy sieć mostkową. Wszystkie kontenery mogą komunikować się ze sobą, używając nazwy usługi jako nazwy hosta w tej domyślnej sieci sterowników.

Sieci niestandardowe: Dzięki tym opcjom użytkownicy mogą zdefiniować jedną lub dwie sieci niestandardowe, a nawet więcej jako sieci zdefiniowane przez użytkownika. Możesz zdefiniować niestandardowe sieci w porcie kontenera i pliku docker-compose.yml. Przypisując usługi do tych sieci, kontrolujesz sposób komunikacji kontenerów:

  • Sieci wewnętrzne izolują usługi od innych.
  • Sieci wielokrotne umożliwiają niektórym usługom komunikację między sobą, jednocześnie odmawiając takiego dostępu innym.

Wykrywanie usług: Każda usługa otrzymuje nazwę hosta zgodną z jej nazwą w konfiguracji. Oznacza to, że można odwołać się do innej usługi w jednym kontenerze, używając nazwy tej innej usługi. Na przykład w usłudze internetowej użyłbyś db, aby odwołać się do adresu IP kontenera bazy danych.

Tryby sieciowe: Można również ustawić tryby sieciowe, aby korzystać z hosta, mostka lub braku połączenia dla usług. Najczęściej stosowanym rozwiązaniem jest most, który izoluje ruch kontenerowy.

Czym są sterowniki sieciowe Docker?

Sterowniki sieciowe Docker opisują połączenia i komunikację kontenerów między sobą oraz z innymi kontenerami i systemami. Istnieją różne przypadki użycia, a do tych przypadków można zastosować sterowniki sieciowe, z których każdy zapewnia inny poziom izolacji, łączności i wydajności. Omówimy każdy sterownik sieciowy i wyjaśnimy jego zastosowanie.

Rodzaje sterowników sieciowych Docker

Bridge (domyślnie)

Wewnętrzne sieci Docker umożliwiają kontenerom komunikację z innymi kontenerami w ramach jednego hosta. Jeśli uruchomisz kontenery bez określenia sieci, Docker użyje domyślnej sieci mostkowej.

# Create a custom bridge network
docker network create --driver bridge my_bridge_network

# Run containers and connect to the custom network
docker run -d --name container1 --network my_bridge_network busybox sleep 3600
docker run -d --name container2 --network my_bridge_network busybox sleep 3600
# Create a custom bridge network
docker network create --driver bridge my_bridge_network

# Run containers and connect to the custom network
docker run -d --name container1 --network my_bridge_network busybox sleep 3600
docker run -d --name container2 --network my_bridge_network busybox sleep 3600
SHELL

W tym przypadku można używać nazw usług, takich jak ping container1 i container2.

Host

Dzięki sterownikowi hosta kontener bezpośrednio współdzieli stos sieciowy hosta, więc nie ma własnej, niestandardowej izolacji sieciowej.

# Run a container using the host network
docker run -d --network host nginx
# Run a container using the host network
docker run -d --network host nginx
SHELL

Kontejner NGINX korzysta teraz z adresu IP i interfejsów sieciowych hosta, omijając w ten sposób izolację sieciową.

Nakładka

Łączy kontenery na wielu hostach i jest używany głównie w środowiskach Docker Swarm lub Kubernetes, łącząc maszyny fizyczne lub wirtualne za pośrednictwem kontenerów w celu bezpiecznej komunikacji przy użyciu sieci wirtualnej.

# Create an overlay network for use in a Docker Swarm cluster
docker network create -d overlay my_overlay_network

# Deploy a service in the Swarm cluster
docker service create --name web --network my_overlay_network nginx
# Create an overlay network for use in a Docker Swarm cluster
docker network create -d overlay my_overlay_network

# Deploy a service in the Swarm cluster
docker service create --name web --network my_overlay_network nginx
SHELL

Tworzy to usługę w klastrze Swarm, która może rozciągać się na wiele hostów Docker.

Brak

Ten sterownik wyłącza obsługę sieci dla kontenera. Ten kontener jest odizolowany od wszelkiego rodzaju zewnętrznej komunikacji sieciowej.

# Run a container with no network
docker run -d --network none busybox sleep 3600
# Run a container with no network
docker run -d --network none busybox sleep 3600
SHELL

Kontener busybox nie będzie miał dostępu do Internetu i nie będzie mógł wysyłać połączeń do sieci innych kontenerów ani do świata zewnętrznego.

Macvlan

Sterownik Macvlan umożliwia kontenerom pojawianie się w sieci jako urządzenia fizyczne z własnymi adresami MAC, dzięki czemu mogą one uzyskać bezpośredni dostęp do sieci fizycznej.

# Create a Macvlan network
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 macvlan_network

# Run a container on the Macvlan network
docker run -d --network macvlan_network busybox sleep 3600
# Create a Macvlan network
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 macvlan_network

# Run a container on the Macvlan network
docker run -d --network macvlan_network busybox sleep 3600
SHELL

IPvlan

Sterownik IPvlan jest podobny do Macvlan, ale skupia się na przypisywaniu adresów IP zamiast opierać się na warstwie 2 (adresy MAC). Umożliwia to współdzielenie tego samego interfejsu sieciowego przez wiele kontenerów.

# Create an IPvlan network
docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 ipvlan_network

# Run a container on the IPvlan network
docker run -d --network ipvlan_network busybox sleep 3600
# Create an IPvlan network
docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 ipvlan_network

# Run a container on the IPvlan network
docker run -d --network ipvlan_network busybox sleep 3600
SHELL

Będzie on współdzielił interfejs Ethernet warstwy 2 hosta z siecią, ale będzie miał inny adres IP.

Wtyczki niestandardowe

Niestandardowe wtyczki Docker to sterowniki sieciowe innych firm lub opracowane przez użytkowników, oferujące rozbudowane funkcje sieciowe, wykraczające poza to, co Docker oferuje domyślnie. Wtyczki Docker innych producentów mogą integrować się z zewnętrznymi frameworkami rozwiązań sieciowych, takimi jak Software-Defined Networking, poprawiając w ten sposób takie możliwości, jak bezpieczeństwo, skalowalność, a także obsługę sieci wielohostowej. Docker zapewnia programistom i dostawcom wszechstronną architekturę dla wtyczek sieciowych, umożliwiającą ich instalację i użytkowanie w taki sam sposób, jak w przypadku sterowników natywnych.

IronSecureDoc

IronSecureDoc dla Docker ułatwia programistom dodawanie funkcji bezpiecznego przetwarzania dokumentów do ich aplikacji kontenerowych. Dzięki Dockerowi możesz zamknąć swoją aplikację ASP.NET Core z IronSecureDoc w jednolitym środowisku, które ułatwia wdrażanie i skalowanie. Aby uruchomić aplikację, należy utworzyć plik Dockerfile, który komponuje aplikację ASP.NET Core przy użyciu biblioteki IronSecureDoc oraz ewentualnie innych skryptów instalacyjnych lub konfiguracji niezbędnych do działania.

Sieć Docker Compose (jak działa dla programistów): Rysunek 2 — IronSecureDoc

Zawiera również plik docker-compose.yml zawierający zależności usług, zmienne środowiskowe i zmapowane porty, zapewniając w ten sposób dostęp do tego. Dzięki temu zadania związane z bezpieczeństwem dokumentów stają się łatwiejsze do zarządzania, co pozwala na wydajne i skuteczne działanie aplikacji internetowej poza środowiskiem używanym podczas tworzenia lub produkcji. Aby w pełni wykorzystać wszystkie możliwości oferowane przez szyfrowanie dokumentów, redagowanie itp., konieczna będzie instalacja i konfiguracja IronSecureDoc, tak jak w przypadku Docker.

Instalacja i uruchomienie IronSecureDoc

Uruchom następujące polecenie w wierszu poleceń lub w otwartym oknie terminala, aby pobrać obraz Docker IronSecureDoc z repozytorium.

# Pull IronSecureDoc Docker image
docker pull ironsoftwareofficial/ironsecuredoc
# Pull IronSecureDoc Docker image
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Sieć Docker Compose (jak działa dla programistów): Rysunek 3

Po pobraniu obrazu z repozytorium Docker można użyć innego polecenia, aby uruchomić IronSecureDoc jako działający kontener.

# Run a container with network isolation and environment variables
docker container run --rm -p 8080:8080 \
  -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> \
  -e ENVIRONMENT=Development \
  -e HTTP_PORTS=8080 \
  ironsoftwareofficial/ironsecuredoc:latest
# Run a container with network isolation and environment variables
docker container run --rm -p 8080:8080 \
  -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> \
  -e ENVIRONMENT=Development \
  -e HTTP_PORTS=8080 \
  ironsoftwareofficial/ironsecuredoc:latest
SHELL

Powyższe polecenie Docker run uruchomi instancję kontenera IronSecureDoc. Sieć mostkowa jest zakładana w celu izolacji sieci. Umożliwia to również zewnętrzny dostęp do usług udostępnianych wewnątrz kontenera poprzez http://localhost:8080 przy użyciu flagi -p 8080:8080; spowoduje to udostępnienie wewnętrznej usługi, działającej na porcie 8080 sieci kontenera, na porcie 8080 sieci hosta.

Kontenery domyślnie działają w sieci mostkowej Docker, więc izolują się od innych kontenerów i świata zewnętrznego, chyba że udostępnisz je poprzez mapowanie portów, co robisz tutaj. Przekazywane zmienne środowiskowe (IronSecureDoc_LicenseKey, ENVIRONMENT, HTTP_PORTS) konfigurują zachowanie aplikacji w kontenerze. Flaga --rm powoduje usunięcie kontenera po jego zatrzymaniu.

Taka konfiguracja ma tę zaletę, że sieć mostkowa izoluje kontener i łączy usługi wewnętrznie, podczas gdy mapowanie portów przekierowuje ruch zewnętrzny z komputera hosta do usługi kontenera, ułatwiając w ten sposób dostęp.

Sieć Docker Compose (jak działa dla programistów): Rysunek 4

Korzystanie z IronSecureDoc z portem sieciowym Docker

Interfejs API REST IronSecureDoc umożliwia użytkownikom redagowanie, certyfikowanie i szyfrowanie dokumentów po zainstalowaniu i uruchomieniu w Dockerze. Aby uzyskać bardziej szczegółowe instrukcje, zapoznaj się z dokumentacją tutaj.

Na przykład, aby przesłać dokument do szyfrowania, można wykonać żądanie POST do interfejsu API IronSecureDoc:

# POST a document for encryption using cURL
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
# POST a document for encryption using cURL
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

To polecenie automatycznie prześle dokument do IronSecureDoc, gdzie zostanie odpowiednio zaszyfrowany.

Wnioski

Sieci Docker mają kluczowe znaczenie w kontrolowaniu interakcji aplikacji oraz ich komunikacji z innymi aplikacjami i resztą świata poprzez różne sterowniki i konfiguracje dostosowane do zróżnicowanych potrzeb aplikacji. Domyślna konfiguracja sieci mostkowej umożliwia podstawową izolację, ponieważ usługi mogą być udostępniane systemom hosta poprzez mapowanie portów, czego przykładem jest aplikacja IronSecureDoc. Ułatwia to zarządzanie i konfigurację aplikacji kontenerowych, zwiększając elastyczność operacyjną i skalowalność aplikacji.

IronSecureDoc, zaawansowane narzędzie do przetwarzania dokumentów, wykorzystuje możliwości Docker w zakresie konteneryzacji, umożliwiając szybkie i niezawodne wdrażanie aplikacji. Zapewnia to obsługę wielu środowisk przy jednoczesnej płynnej integracji sieci Docker z IronSecureDoc, dzięki czemu integracja aplikacji jest łatwa, dostępna i łatwa w zarządzaniu.

W rezultacie usprawnia to przepływ pracy, poprawia wydajność i usprawnia operacje, zwłaszcza podczas przetwarzania dokumentów. To ostatecznie wzbogaca zarówno doświadczenia związane z tworzeniem, jak i wdrażaniem oprogramowania, czyniąc je cennym rozwiązaniem dla nowoczesnych aplikacji. Więcej informacji na temat licencji IronSecureDoc można znaleźć na tej stronie. Aby dowiedzieć się więcej o wielu produktach oferowanych przez Iron Software, kliknij ten link.

Często Zadawane Pytania

W jaki sposób sieci Docker Compose ułatwiają komunikację między usługami?

Sieci Docker Compose umożliwiają usługom w ramach aplikacji Docker Compose komunikację przy użyciu nazw usług jako nazw hostów, umożliwiając interakcje w tym samym zamkniętym srodowisku.

Jaka jest rola domyślnej sieci mostkowej w Docker Compose?

Domyślna sieć mostkowa tworzona automatycznie przez Docker pozwala kontenerom komunikować się ze sobą, używając nazw usług jako nazw hostów, jeśli nie zdefiniowano konkretnej sieci.

W jaki sposób sieci niestandardowe mogą usprawnić działanie aplikacji Docker Compose?

Sieci niestandardowe w Docker Compose wzbogacają aplikacje, umożliwiając izolację i selektywną komunikację między usługami zdefiniowanymi w pliku docker-compose.yml.

Jakie rodzaje sterowników sieciowych Docker istnieją i jakie są ich zastosowania?

Sterowniki sieciowe Docker, takie jak bridge, host, overlay, none, Macvlan i IPvlan, zapewniają różne poziomy izolacji, łączności i wydajności, dostosowane do różnych potrzeb aplikacji.

W jaki sposób sterownik sieci nakładkowej obsługuje komunikację między wieloma hostami?

Sterownik sieci nakładkowej łączy kontenery na wielu hostach, zapewniając bezpieczną komunikację za pośrednictwem sieci wirtualnej, i jest powszechnie stosowany w środowiskach Docker Swarm lub Kubernetes.

Dlaczego bezpieczne przetwarzanie dokumentów jest ważne w środowiskach kontenerowych?

Bezpieczne przetwarzanie dokumentów, takie jak korzystanie z IronSecureDoc, jest ważne w środowiskach kontenerowych, ponieważ umożliwia wydajną enkapsulację, wdrażanie i skalowanie aplikacji dzięki możliwościom sieciowym Docker.

Jak skonfigurować bezpieczne przetwarzanie dokumentów przy użyciu Docker?

Możesz skonfigurować bezpieczne przetwarzanie dokumentów w Dockerze, wdrażając narzędzia takie jak IronSecureDoc w kontenerach oraz konfigurując srodowiska za pomocą plików Dockerfile i docker-compose.yml w celu izolacji sieciowej.

Jakie kroki są potrzebne do szyfrowania dokumentów za pomocą REST API w środowisku Docker?

Aby zaszyfrować dokumenty za pomocą interfejsu API REST w środowisku Docker, należy wysłać żądanie POST z dokumentem i parametrami do bezpiecznego interfejsu API przetwarzania dokumentów, korzystając z narzędzi takich jak cURL w konfiguracji kontenerowej.

W jaki sposób możliwości sieciowe Docker mogą poprawić skalowalność aplikacji?

Możliwości sieciowe Docker zwiększają skalowalność aplikacji, umożliwiając efektywne zarządzanie interakcjami i komunikacją między usługami, usprawniając przepływ pracy i proces wdrażania.

Jak wygląda proces integracji IronSecureDoc z istniejącymi systemami Docker?

Zintegruj IronSecureDoc z istniejącymi systemami Docker, używając poleceń Docker do konfiguracji, wykorzystując mapowanie portów i zmienne środowiskowe, aby zapewnić spójne wdrażanie i skalowanie.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie