Docker Compose Ağ (Geliştiriciler için Nasıl Çalışır)
Docker Nedir?
Docker, açık kaynaklı bir platform olup, konteyner tabanlı konseptler kullanarak uygulamaların dağıtımını ve ölçeklenmesini hafif, taşınabilir konteynerler içinde otomatikleştirir. Basitçe ifade edersek, bir Docker konteynerı tüm uygulama kodunu ve bağımlılığını tek bir birim içinde toplar, geliştiricinin dizüstü bilgisayarından test sunucusuna veya üretim bulut sunucularına kadar ortamlarda tutarlıdır.

Konteynerlar geleneksel sanallaştırma makineleri (VM'ler) gibi çalışmaz, çünkü bir ana sistemin işletim sistemi çekirdeği paylaşırlar. Bu nedenle, konteynerler çok daha verimli ve hızlı başlar. Nitekim, Docker konteynerleri, geliştirme döngüsünün tüm aşamalarında tutarlı davranışı garanti eder.
Aslında, Docker görüntüleri, uygulama ortamını tutan konteynerlerin açıklamalarının şablonlarıdır. Bu set ayrıca konteyner yaşam döngülerini yönetmek için araç setlerini de içerir. Bir örnek, birden fazla konteynerden oluşan uygulamaları yönlendirmek için kullanabileceğiniz Docker Compose'dur. Ardından, görüntü paylaşımı için bir kayıt olan Docker Hub vardır.
Docker Compose Ağları Nedir?
Docker Compose ağları, aynı kapsüllenmiş ortamlar içinde bir Docker Compose uygulamasında çalışan hizmetlerin birbirleriyle konuşmasına olanak tanır. Birden fazla hizmeti bir docker-compose.yml dosyasında tanımlarsanız, Docker Compose bu hizmetlerin birbirleriyle hizmet adlarını ana bilgisayar adları olarak kullanarak iletişim kurabilmeleri için varsayılan bir ağı otomatik olarak oluşturur. Esasen, kullanıcının kendi ağını ve oluşturulan ağ ile birden fazla hizmet tanımlamasına olanak tanır.
Varsayılan Köprü Ağı: Konteynerleriniz için bir ağ tanımlamadığınızda, docker-compose up çalıştırdığınızda, Docker otomatik olarak bir köprü ağı oluşturur. Tüm konteynerler bu varsayılan sürücü ağında ana bilgisayar adı olarak hizmet adıyla birbirleriyle iletişim kurabilir.
Özel Ağlar: Bu seçeneklerle kullanıcılar bir veya iki özel ağ ve hatta daha fazla kullanıcı tanımlı ağ oluşturabilir. Konteyner portunuz ve docker-compose.yml dosyanız içinde özel ağlar tanımlayabilirsiniz. Hizmetleri bu ağlara atayarak, konteynerlerin nasıl iletişim kurabileceğini kontrol edersiniz:
- Dahili ağlar, hizmetleri diğerlerinden izole eder.
- Birden fazla ağ bazı hizmetlerin birbirleriyle iletişim kurmasını sağlarken, diğerlerine bu erişimi reddeder.
Hizmet Keşfi: Her hizmet, yapılandırma içinde adının eşdeğeri olan bir ana bilgisayar adı alır. Yani, bir konteynerdeki başka bir hizmete, diğer hizmetin adını kullanarak başvurabilirsiniz. Örneğin, web hizmetinde, veritabanı konteynerinin IP'sine başvurmak için db kullanırsınız.
Ağ Modları: Hizmetler için ana bilgisayar, köprü veya hiçbiri gibi ağ modlarını da ayarlayabilirsiniz. En yaygın kullanılan köprüdür ve konteyner trafiğini izole eder.
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şimini açıklamaktadır. Çeşitli kullanım durumları vardır ve bu durumlara çeşitli seviyelerde yalıtım, bağlılık ve performans sağlayan ağ sürücüleri uygulanabilir. Her bir ağ sürücüsünden geçeceğiz ve kullanım alanlarını açıklayacağız.
Docker Ağ Sürücülerinin Çeşitleri
Köprü (Varsayılan)
İç docker ağları, bir konteynerin tek bir ana bilgisayar temelinde diğerleriyle iletişim kurmasını sağlar. 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 3600Burada, hizmet adları ping container1 ve container2 gibi iletişim kurmak için kullanılabilir.
Ana Bilgisayar
Ana bilgisayar sürücüsü ile konteyner doğrudan ana bilgisayar ağ yığını paylaşır, böylece bir konteyner kendi özel ağ yalıtımına sahip olmaz.
# 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 nginxNGINX konteynerı artık ağ yalıtımını geçerek ana bilgisayarın IP'sini ve ağ arayüzlerini paylaşır.
Kapsama
Birden fazla ana bilgisayar arasında konteynerleri birbirine bağlar ve genellikle Docker Swarm veya Kubernetes ortamlarında kullanılır, fiziksel veya sanal makineler arasında konteynerler aracılığıyla sanal bir ağ kullanarak güvenli bir şekilde iletişim sağlanı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 nginxBu, bir Swarm kümesinde birden fazla Docker ana bilgisayarı boyunca uzanabilen bir hizmet oluşturur.
Hiçbiri
Bu, konteyner için ağı devre dışı bırakır. Bu konteyner, herhangi bir tür dış ağ iletişiminden izole edilir.
# 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 3600Busybox konteynerı, internete erişemez ve diğer konteynerlerin kendi ağlarına veya dış dünyaya çağrılar yapamaz.
Macvlan
Macvlan sürücüsü, konteynerlerin ağda kendi MAC adresleriyle fiziksel cihazlar gibi görünmelerini sağlar, böylece fiziksel ağa doğrudan erişebilirler.
# 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 3600IPvlan
IPvlan sürücüsü, Macvlan'a benzer ancak Katman 2 (MAC adresleri) yerine IP adreslerini atamaya odaklanır. Aynı ağ arabirimini birden fazla konteynerin paylaşmasını sağlar.
# 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 3600Ana bilgisayarın Katman 2 Ethernet arabirimini ağla paylaşacak ancak farklı bir IP adresine sahip olacaktır.
Özel Eklentiler
Docker'ın özel eklentileri, genellikle Docker'ın varsayılan olarak sunduğundan daha fazla ağ yeteneklerine sahip üçüncü taraf veya kullanıcı tarafından geliştirilmiş ağ sürücüleridir. Üçüncü taraf Docker eklentileri, yazılım tanımlı ağlar gibi dış ağ çözümü çerçeveleri ile entegre olup, güvenlik, ölçeklenebilirlik ve çoklu ana bilgisayar ağı gibi yetenekleri geliştirir. Docker, geliştiricilere ve satıcılara yerel sürücü olarak kurulum ve kullanım esnekliği sağlayan ağ eklentileri için çok yönlü bir mimari sunar.
IronSecureDoc
IronSecureDoc for Docker, geliştiricilerin konteynerlenmiş uygulamalarına güvenli belge işleme yetenekleri eklemesini kolaylaştırır. Docker ile, ASP.NET Core uygulamanızı IronSecureDoc ile kapsüller içine alarak dağıtımı ve ölçeklemeyi kolaylaştıran düzgün bir ortamda çalıştırabilirsiniz. Bunu çalıştırmak için, IronSecureDoc kütüphanesi ve olası diğer kurulum komut dosyaları veya işleri çalışır hale getirmek için gerekli konfigürasyonlarla ASP.NET Core uygulamasını birleştiren bir Dockerfile oluşturmalısınız.

Hizmet bağımlılıkları, ortam değişkenleri ve eşlenmiş portlar içeren bir docker-compose.yml dosyasını da içerir, böylece buna erişim sağlar. Bu nedenle, belgelerin güvenliğine ilişkin görevleri yönetmek kolay hale gelir, bu sayede web uygulamanız, geliştirme veya üretimde kullanılanın dışındaki bir şekilde etkili ve verimli bir şekilde çalışacaktır. Docker'da olduğu gibi IronSecureDoc'u kurmak ve konfigüre etmek, belgelerin şifrelenmesi, düzenleme vb. ile sunulan tüm özelliklerden yararlanmak için gerekli olacaktır.
IronSecureDoc Kurulumu ve Çalıştırılması
IronSecureDoc Docker görüntüsünün depodan alınabilmesi için Komut İstemi'nde veya açık bir terminal penceresinde aşağıdaki komutu çalıştırın.
# Pull IronSecureDoc Docker image
docker pull ironsoftwareofficial/ironsecuredoc# Pull IronSecureDoc Docker image
docker pull ironsoftwareofficial/ironsecuredoc
Docker deposundan görüntüyü çektikten sonra, IronSecureDoc'u çalışan bir konteyner olarak 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:latestYukarıdaki Docker çalıştır komutu, IronSecureDoc'un bir konteyner örneğini getirir. Ağ yalıtımı için köprü ağı varsayılır. Bu ayrıca, http://localhost:8080 bayrağını kullanarak -p 8080:8080 içindeki hizmetlere harici erişimi sağlar; bu, konteyner ağının 8080 portunda çalışan dahili hizmeti, ana bilgisayar ağının 8080 portuna maruz bırakır.
Konteynerler varsayılan olarak Docker'ın köprü ağında çalışır, bu yüzden diğer konteynerlerden ve dış dünyadan kendilerini izole ederler, aksi halde burada yaptığınız gibi port haritalama ile onları dışa açmazsınız. Gönderilen ortam değişkenleri (IronSecureDoc_LicenseKey, ENVIRONMENT, HTTP_PORTS), uygulamanın konteyner içindeki davranışını yapılandırır. --rm bayrağı, konteyner durduğunda konteynerin kaldırılmasına neden olur.
Bu ayar, köprü ağının konteyneri izole etmesi ve servisleri dahili olarak bağlaması gibi bir avantaja sahiptir, port haritalama ise ana bilgisayar makinesinden konteynerin servisine dış trafiği köprüleyerek erişimi kolaylaştırır.

Docker Network Port ile IronSecureDoc Kullanımı
IronSecureDoc'un REST API'si, kurulum ve Docker'da başlatılması üzerine kullanıcıların belgeleri düzenlemesine, sertifikalandırmasına ve şifrelemesine olanak tanır. Daha ayrıntılı adımlar için belgeye bakın.
Örneğin, bir belgeyi şifreleme için göndermek için 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'Bu komut, belgeyi otomatik olarak IronSecureDoc'a gönderecek ve burada uygun şekilde şifrelecektir.
Sonuç
Docker ağı, uygulama etkileşimlerini ve diğer uygulamalarla ve dünyayla olan iletişimlerini kontrol etmekte, çeşitli uygulama ihtiyaçları için farklı sürücüler ve konfigürasyonlar aracılığıyla hayati önem taşır. Varsayılan köprü ağ yapılandırması, IronSecureDoc uygulamasıyla örneklendirildiği gibi, hizmetlerin bağlantı noktası eşleme yoluyla konuk sistemlere ifade edilmesine izin verirken temel yalıtım sağlar. Bu, kapsayıcılı uygulamaların daha kolay yönetimini ve yapılandırılması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, konteynerleştirme açısından Docker'ın yeteneklerinden yararlanır ve hızlı ve güvenilir uygulama dağıtımına olanak tanır. Bu, Docker ağının IronSecureDoc ile sorunsuz bir şekilde entegrasyonunu desteklerken, birden fazla ortam için destek sağlar, uygulamaların entegrasyonunu kolay, erişilebilir ve yönetilebilir hale getirir.
Sonuç olarak, iş akışlarını düzene sokar, verimliliği artırır ve özellikle belgeleri işlerken operasyonları iyileştirir. Bu nihayetinde, modern yazılım uygulamaları için değerli bir çözüm haline getirerek geliştirme ve dağıtım deneyimlerini zenginleştirir. IronSecureDoc lisanslaması hakkında daha fazla bilgi için lütfen bu sayfayı takip edin. Iron Software'dan birçok ürün teklifi hakkında daha fazla bilgi edinmek için bu bağlantıyı takip edin.
Sıkça Sorulan Sorular
Docker Compose ağları hizmet iletişimini nasıl kolaylaştırır?
Docker Compose ağları, bir Docker Compose uygulamasındaki hizmetlerin, aynı kapsüllenmiş ortam içinde etkileşimde bulunmasını sağlayarak, hizmet adlarının konak adları olarak kullanılmasına imkan tanır.
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ığı takdirde, kapsayıcıların hizmet adlarını konak adları olarak kullanarak birbirleriyle iletişim kurmasına olanak tanır.
Özel ağlar Docker Compose uygulamalarını nasıl geliştirir?
Docker Compose'daki özel ağlar, uygulamaların docker-compose.yml dosyasında tanımlanan hizmetler arasında izolasyon ve seçici iletişim sağlayarak uygulamaları geliştirir.
Hangi tür Docker ağ sürücüleri mevcuttur ve bunların kullanımları nelerdir?
Docker ağ sürücüleri, köprü, ana bilgisayar, örtüşme, yok, Macvlan ve IPvlan gibi farklı uygulama ihtiyaçlarına uygun olarak, değişen seviyelerde izolasyon, bağlantı ve performans sağlar.
Örtüşme ağ sürücüsü çok-ana bilgisayar iletişimini nasıl destekler?
Örtüşme ağ sürücüsü, sanal bir ağ aracılığıyla güvenli iletişim sağlayarak, birden fazla ana bilgisayar arasındaki kapsayıcıları bağ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 araçlar kullanarak güvenli belge işleme, Docker'ın ağ kurma yetenekleriyle uygulamaların verimli kapsüllenmesi, dağıtılması ve ölçeklenmesini sağladığı için kapsayıcı ortamlarında önemlidir.
Docker kullanarak güvenli belge işleme nasıl kurabilirim?
IronSecureDoc gibi araçları kapsayıcılar içinde dağıtarak, Dockerfile ve docker-compose.yml dosyasında ağ izolasyonunu yapılandırarak Docker'da güvenli belge işlemi kurabilirsiniz.
Docker içindeki 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 kapsayıcı içinde cURL gibi araçları kullanarak, belge ve parametrelerle API'ye bir POST isteği gönderin.
Docker'ın ağ yetenekleri uygulama ölçeklenebilirliğini nasıl arttırır?
Docker'ın ağ yetenekleri, hizmetler arasındaki etkileşimlerin ve iletişimin verimli yönetilmesine olanak tanıyarak, iş akışlarını düzene koyar ve dağıtım deneyimlerini iyileştirir.
Mevcut Docker sistemlerine IronSecureDoc'u entegre etmenin süreci nedir?
Docker kurulum komutları kullanarak, bağlantı noktası eşleştirme ve ortam değişkenlerini kullanarak tutarlı dağıtım ve ölçeklenme sağlamak için mevcut Docker sistemlerine IronSecureDoc'u entegre edin.








