Altbilgi içeriğine atla
IRONSECUREDOC KULLANıMı

Docker Compose Ağ (Geliştiriciler için Nasıl Çalışır)

Docker nedir?

Docker, açık kaynaklı bir platform olup, konteyner tabanlı kavramları kullanarak uygulamaların hafif, taşınabilir konteynerlerde dağıtımını ve ölçeklendirilmesini otomatikleştirir. Basit bir şekilde ifade etmek gerekirse, bir Docker konteyneri tüm uygulama kodunu ve bağımlılıklarını tek bir birim içinde toplar, geliştiricinin dizüstü bilgisayarından test sunucusuna veya üretim bulut sunucularına kadar her ortamda tutarlı bir şekilde çalışır.

Docker Compose Ağı (Geliştiriciler için Nasıl Çalışır): Şekil 1

Konteynerler geleneksel sanal makineler (VM'ler) gibi davranmaz çünkü bunlar bir ana sistemin işletim sistemi çekirdeğini paylaşır. Bu nedenle, konteynerler çok daha verimli ve daha hızlı başlar. Gerçekten de, Docker konteynerleri geliştirme döngüsünün tüm aşamalarında tutarlı performansı garanti eder.

Aslında, Docker resimleri, uygulama ortamını taşıyan konteynerlerin açıklamalarına yönelik şablonlardır. Bu set aynı zamanda konteyner yaşam döngülerini yönetmek için araç kitlerini içerir. Bir örnek, birden fazla konteynerden oluşan uygulamaları kullanarak düzenlemek için kullanabileceğiniz Docker Compose'dur. Sonra, görüntüleri paylaşmak için bir kayıt defteri olan Docker Hub var.

Docker Compose Ağları Nedir?

Docker Compose ağları, Docker Compose uygulamasında çalışan hizmetlerin aynı kapsüllü ortamlar içinde birbirleriyle konuşabilmesini sağlar. Eğer birden fazla hizmeti bir docker-compose.yml dosyası içinde tanımlarsanız, Docker Compose bu hizmetlerin birbirleriyle servis adlarını hostname olarak kullanarak iletişim kurabilmeleri için otomatik olarak varsayılan bir ağ oluşturur. Esasen, kullanıcıların kendi ağlarını ve oluşturulan ağ ile birden fazla hizmeti tanımlamalarına olanak tanır.

Varsayılan Köprü Ağı: Eğer konteynırlarınız için docker-compose up çalıştırdığınızda bir ağ tanımlamazsanız, Docker otomatik olarak bir köprü ağı oluşturur. Bu varsayılan sürücü ağında, tüm konteynerler, hizmet adı olarak hostname kullanılarak birbirleriyle iletişim kurabilir.

Özel Ağlar: Bu seçeneklerle, kullanıcılar bir veya iki özel ağı ve hatta daha fazlasını kullanıcı tanımlı ağlar olarak tanımlayabilir. Kendi konteynır bağlantı noktanız ve docker-compose.yml dosyanız içinde özel ağlar tanımlayabilirsiniz. Hizmetleri bu ağlara atayarak konteynırların nasıl iletişim kurabileceğini kontrol edersiniz:

  • İç ağlar, hizmetleri diğerlerinden izole eder.
  • Birden fazla ağ, bazı hizmetlerin birbirleriyle iletişim kurmasına izin verirken diğerlerine bu tür bir erişim sağlamaz.

Hizmet Keşfi: Her hizmet, yapılandırmasındaki adı eşdeğerinde bir hostname alır. Yani, bir konteynırdaki başka bir hizmete, o hizmetin adı kullanılarak başvurabilirsiniz. Örneğin, web hizmetinde, veritabanı konteynırının IP'sine başvurmak için db kullanırsınız.

Ağ Modları: Ayrıca hizmetler için host, bridge veya none ağ modlarını kullanabilirsiniz. En sık kullanılanı, konteyner trafiğini izole eden bir köprüdür.

Docker Ağ Sürücüleri Nedir?

Docker ağ sürücüleri, konteynerlerin birbirleriyle ve diğer konteynerler ve sistemlerle olan bağlantılarını ve iletişimlerini tanımlar. Çeşitli kullanım senaryoları vardır ve ağ sürücüleri bu durumlara uygulanabilir, her biri farklı bir izolasyon, bağlantı ve performans seviyesi sunar. Her ağ sürücüsünden geçip kullanımını açıklayacağız.

Docker Ağ Sürücü Türleri

Bridge (Varsayılan)

İç docker ağları, bir tek ana bilgisayara dayanan diğerleriyle bir konteynerin iletişim kurmasına olanak tanır. Konteynerleri bir ağ belirtmeden başlatırsanız, Docker varsayılan köprü ağını kullanır.

# 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

Burada, ping container1 ve container2 gibi, hizmet adları iletişim için kullanılabilir.

Host

Ana bilgisayar sürücüsü ile, konteyner doğrudan ana bilgisayar ağ yığınıyla paylaşır, bu yüzden bir konteyner kendi özel ağ izolasyonunu almaz.

# 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

NGINX konteyner şimdi ana bilgisayarın IP'sini ve ağ arayüzlerini paylaşır, dolayısıyla ağ izolasyonunu atlar.

Overlay

Birden fazla ana bilgisayar arasında konteynerleri birbirine bağlar ve genellikle Docker Swarm veya Kubernetes ortamlarında, fiziksel veya sanal makineleri konteynerler üzerinden güvenli bir şekilde iletişim kurmak için sanal bir ağ aracılığıyla bağlayarak kullanılır.

# 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

Bu, birden fazla Docker ana bilgisayarını kapsayan bir Swarm kümesinde bir hizmet oluşturur.

None

Bu none-sürücüsü konteyner için ağ iletişimini devre dışı bırakır. Bu konteyner herhangi bir tür harici ağ iletişiminden izole edilmiştir.

# 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

Busybox konteyner internete erişemeyecek ve diğer konteynerlerin kendi ağlarına veya dış dünyaya çağrı gönderemeyecek.

Macvlan

Macvlan sürücüsü, konteynerlerin ağda kendi MAC adresleri ile fiziksel cihazlar gibi görünmelerini sağlayarak doğrudan fiziksel ağa erişmelerini sağlar.

# 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

IPvlan sürücüsü Macvlan'a benzer ancak IP adresleri atamaya odaklanır ve Katman 2 (MAC adresleri) kullanımına bağlı değildir. Aynı ağ arayüzünü birden çok konteynerin paylaşmasına izin verir.

# 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

Ev sahibinin Katman 2 Ethernet arabirimiyle ağı paylaşacak ancak farklı bir IP adresine sahip olacak.

Özel Eklentiler

Docker'ın özel eklentileri, Docker'ın varsayılan olarak sunduğundan daha fazla ağ özellikleri sunan üçüncü taraf veya kullanıcı tarafından geliştirilen ağ sürücüleridir. Üçüncü taraf Docker eklentileri, Ağ Tanımlı Ağ gibi harici ağ çözüm çerçeveleriyle entegre olabilir, böylece güvenlik, ölçeklenebilirlik gibi yetenekleri ve çoklu ana bilgisayar ağlarını geliştirir. Docker, geliştiricilere ve satıcılara ağ eklentileri için esnek bir mimari sunar ve bunların yerel sürücü ile aynı şekilde yüklenip kullanılmasına izin verir.

IronSecureDoc

Docker için IronSecureDoc, konteynerize edilmiş uygulamaların güvenli belge işleme yeteneklerini eklemelerini geliştiriciler için kolaylaştırır. Docker ile, IronSecureDoc ile ASP.NET Core uygulamanızı konuşlandırmayı ve ölçeklendirmeyi kolaylaştıran, tutarlı bir ortamda kapsülleyebilirsiniz. Çalıştırmak için, IronSecureDoc kütüphanesi ve gerekli olabilecek diğer kurulum script'leri veya yapılandırmaları kullanarak ASP.NET Core uygulamanızı düzenleyen bir Dockerfile oluşturursunuz.

Docker Compose Ağı (Geliştiriciler için Nasıl Çalışır): Şekil 2 - IronSecureDoc

Ayrıca, hizmet bağımlılıklarını, ortam değişkenlerini ve eşlenmiş portları içeren bir docker-compose.yml dosyasını da içerir, böylece buna erişim sağlar. Dolayısıyla, belgelerin güvenliği ile ilgili görevler daha yönetilebilir hale gelir, böylece web uygulamanız geliştirme veya üretim dışında verimli ve etkili bir şekilde çalışır. Belgeleri şifreleme, redaksiyon vb. ile sunulan tüm yeteneklerden yararlanmak için Docker'da olduğu gibi IronSecureDoc'u yüklemek ve yapılandırmak gereklidir.

IronSecureDoc'un Kurulumu ve Çalıştırılması

IronSecureDoc Docker görüntüsünü depodan almak için Komut İstemi veya bir terminal penceresi açın ve aşağıdaki komutu çalıştırın.

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

Docker Compose Ağı (Geliştiriciler için Nasıl Çalışır): Şekil 3

Görüntüyü Docker deposundan çektikten sonra, çalıştırılabilir bir konteyner olarak IronSecureDoc'u başlatmak için başka bir komut kullanabilirsiniz.

# 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

Yukarıdaki Docker run komutu, IronSecureDoc'un bir konteyner örneğini başlatacaktır. Ağ izolasyonu için köprü ağı varsayılır. Bu aynı zamanda http://localhost:8080 ile bayrak -p 8080:8080 kullanılarak konteynır içindeki hizmetlere dış erişimi de sağlar; bu, konteynerin ağının 8080 portunda çalışan dahili hizmeti, host ağının 8080 portuna maruz bırakır.

Konteynerler varsayılan olarak Docker köprü ağında çalışır, böylece diğer konteynerlerden ve dış dünyadan izole edilirler, siz onları port eşlemeyle açığa çıkarmadığınız sürece, ki burada yapıyorsunuz. Geçirilen ortam değişkenleri (IronSecureDoc_LicenseKey, ENVIRONMENT, HTTP_PORTS) uygulamanın konteynır içindeki davranışını yapılandırır. --rm bayrağı, konteynırın durduğunda kaldırılmasına neden olur.

Bu kurulumun avantajı, köprü ağının konteyneri izole etmesi ve hizmetleri dahili olarak bağlamasıdır, oysa port eşleme, host makineden konteynerin hizmetine dış trafiği köprüleyerek erişimi kolaylaştırır.

Docker Compose Ağı (Geliştiriciler için Nasıl Çalışır): Şekil 4

Docker Ağ Portuyla IronSecureDoc Kullanımı

IronSecureDoc'un REST API'si, yükleme ve Docker içinde başlatma sonrasında kullanıcıların belgeleri düzeltmesini, onaylamasını ve şifrelemesini sağlar. Daha ayrıntılı adımlar için, belgeler için buraya bakın.

Örneğin, bir belgeyi şifreleme için göndermek üzere IronSecureDoc API'sine bir POST isteği yapabilirsiniz:

# 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

Bu komut belgeyi otomatik olarak IronSecureDoc'a gönderecek ve orada uygun şekilde şifrelenecektir.

Sonuç

Docker ağı, uygulamaların etkileşimlerini ve diğer uygulamalar ve dünya ile olan iletişimlerini, farklı uygulama ihtiyaçları için farklı sürücüler ve yapılandırmalar aracılığıyla kontrol etmede kritik öneme sahiptir. Varsayılan köprü ağ yapılandırması, IronSecureDoc uygulaması tarafından örneklendiği gibi, port eşleme aracılığıyla hizmetler ana sistemlere açığa çıktığında temel izolasyonu sağlar. Konteynerli uygulamaların yönetimini ve yapılandırmasını kolaylaştırır, uygulamanın operasyonel esnekliğini ve ölçeklenebilirliğini artırır.

IronSecureDoc, gelişmiş bir belge işleme aracı olarak Docker'ın konteynerizasyon özelliklerini kullanır ve hızlı ve güvenilir bir uygulama dağıtımına olanak tanır. Bu, birden fazla ortam için destek sağlar ve IronSecureDoc ile Docker ağını sorunsuz bir şekilde entegre eder, uygulamaların entegrasyonunu kolaylaştırır, erişilebilir ve yönetilebilir hale getirir.

Sonuç olarak, iş akışlarını düzene sokar, verimliliği artırır ve belgelerin işlenmesinde özellikle operasyonları geliştirir. Bu nihayetinde hem geliştirme hem de konuşlandırma deneyimlerini zenginleştirir, modern yazılım uygulamaları için değerli bir çözüm sunar. IronSecureDoc lisanslaması hakkında daha fazla bilgi için lütfen bu sayfayı ziyaret edin. Iron Software'in birçok ürün teklifi hakkında daha fazla bilgi edinmek için bu bağlantıyı izleyin.

Sıkça Sorulan Sorular

Docker Compose ağları hizmet iletişimini nasıl sağlar?

Docker Compose ağları, Docker Compose uygulaması içindeki hizmetlerin aynı kapsüllenmiş ortam içinde etkileşimde bulunmasına olanak sağlayarak hizmet adlarını ana bilgisayar adı olarak kullanarak iletişim kurmasını sağlar.

Docker Compose'daki varsayılan köprü ağının rolü nedir?

Docker tarafından otomatik olarak oluşturulan varsayılan köprü ağı, belirli bir ağ tanımlanmadığında, kapsayıcıların ana bilgisayar isimleri olarak hizmet adlarını kullanarak birbiriyle iletişim kurmasına olanak sağlar.

Özel ağlar, Docker Compose uygulamalarını nasıl geliştirebilir?

Docker Compose'daki özel ağlar, docker-compose.yml dosyasında tanımlanan hizmetler arasında izolasyon ve seçici iletişim sağlayarak uygulamaları geliştirir.

Docker ağ sürücüsü türleri nelerdir ve bunların kullanım alanları nelerdir?

Köprü, host, overlay, none, Macvlan ve IPvlan gibi Docker ağ sürücüleri, uygulamanın gereksinimlerine göre çeşitli düzeylerde izolasyon, bağlanabilirlik ve performans sağlar.

Overlay ağ sürücüsü çoklu ana bilgisayar iletişimini nasıl destekler?

Overlay ağ sürücüsü, kapsayıcıları birden fazla ana bilgisayar arasında bağlayarak sanal bir ağ üzerinden güvenli iletişim sağlar ve genellikle Docker Swarm veya Kubernetes ortamlarında kullanılır.

Kapsayıcı ortamlarında güvenli belge işleme neden önemlidir?

IronSecureDoc gibi güvenli belge işleme, kapsayıcı ortamlarında önemlidir çünkü Docker'ın ağ oluşturma yetenekleri ile uygulamaların verimli kapsüllenmesini, dağıtımını ve ölçeklendirmesini sağlar.

Docker kullanarak güvenli belge işleme nasıl ayarlanır?

IronSecureDoc gibi araçları kapsayıcılar içinde dağıtarak Docker'da güvenli belge işleme ayarlayabilirsiniz, Dockerfile ve docker-compose.yml ile ortamları yapılandırarak ağ izolasyonunu sağlayabilirsiniz.

Docker içinde bir REST API aracılığıyla belgeleri şifrelemek için hangi adımlar gereklidir?

Docker içinde bir REST API aracılığıyla belgeleri şifrelemek için bir POST isteği ile belge ve parametreleri güvenli belge işleme API'sine, kapsayıcı kurulumunda cURL gibi araçlar kullanarak gönderin.

Docker'ın ağ oluşturma yetenekleri uygulama ölçeklendirilebilirliğini nasıl artırır?

Docker'ın ağ oluşturma yetenekleri, hizmetler arasındaki etkileşimlerin ve iletişimlerin verimli bir biçimde yönetilmesini sağlayarak uygulama ölçeklendirilebilirliğini artırır, iş akışlarını ve dağıtım deneyimlerini basitleştirir.

IronSecureDoc mevcut Docker sistemlerine nasıl entegre edilir?

IronSecureDoc'u mevcut Docker sistemlerine Docker komutlarını kullanarak kurarak entegre edin, tutarlı dağıtım ve ölçeklendirme sağlamak için port eşleştirme ve ortam değişkenlerinden yararlanın.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara