Docker Daemon Alt Ağ Oluşturucu
Docker'ın kullandığı alt ağları denetleyen daemon.json ayarlarını oluşturun: default-address-pools ve docker0 bridge adresi (bip). Aralıklarınıza kaç ağın sığacağını görün ve çakışmaları kontrol edin.
Girdi
Çıktı
Readme
Docker adres havuzları nedir?
Her Docker ağı, alt ağ olarak adlandırılan kendi IP adresi aralığına sahip olur. Bir alt ağ seçmeden ağ oluşturduğunuzda Docker, 172.17.0.0/16 ile başlayan ve 172.31.0.0/16 ile 192.168.0.0/16 aralıklarına kadar devam eden yerleşik adres havuzları listesinden bir aralık alır. Bu yöntem, seçilen aralık VPN, ofis ağı veya sabit bir adreste bulunan veritabanı gibi başka bir şeyle çakışana kadar çalışır. Bunu tüm ağlar için aynı anda düzeltmek üzere Docker daemon ayarlarındaki adres havuzlarını değiştirirsiniz.
Araç açıklaması
Bu araç, Docker'ın hangi alt ağları kullanacağını denetleyen daemon.json ayarlarını oluşturur. Bir veya daha fazla adres havuzu aralığı ile her ağın boyutunu girerek default-address-pools ayarını elde edebilirsiniz. Ayrıca varsayılan docker0 bridge adresini bip ile ayarlayabilirsiniz. Araç, havuzlarınıza kaç ağın sığacağını ve her ağda kaç host bulunduğunu gösterir, yazdıkça girdilerinizi denetler ve çakışmaya neden olma ihtimali yüksek aralıkları işaretler. Tüm hesaplamalar tarayıcınızda yapılır.
Örnekler
10.10.0.0/16 aralığından tüm yeni ağlara bir /24 ayırın. Böylece her birinde 254 kullanılabilir host bulunan 256 ağ için yer açılır:
{
"default-address-pools": [
{
"base": "10.10.0.0/16",
"size": 24
}
]
}Varsayılan bridge'i başka bir aralığa taşıyın ve iki havuz kullanın:
{
"bip": "10.200.0.1/24",
"default-address-pools": [
{
"base": "10.10.0.0/16",
"size": 24
},
{
"base": "10.20.0.0/20",
"size": 24
}
]
}Özellikler
- Aynı anda birden fazla adres havuzu aralığı; her satırda bir aralık
- Docker'ın her havuzdan ayırdığı ağların boyutu
- Varsayılan
docker0bridge için isteğe bağlı adres - Havuzlara kaç ağın sığacağını ve her ağda kaç kullanılabilir host bulunduğunu gösterir
- Genel adres aralıkları, çakışan havuzlar ve host bitleri ayarlanmış adresler hakkında uyarır
- Sonucu
daemon.jsonolarak indirme
Nasıl çalışır?
Bir aralık, adres ve prefix uzunluğu şeklinde yazılır; örneğin 10.10.0.0/16. Prefix, 32 bitin kaç tanesinin ağ bölümünü oluşturduğunu belirtir; kalan bitler hostları sayar. Her havuzun bir temel aralığı ve ağ boyutu vardır. Docker, temeli bu boyuttaki ağlara böler ve bunları sırayla dağıtır. Bu nedenle boyutu 24 olan 10.10.0.0/16 temeli, 2^(24 − 16) = 256 ağ sağlar. Bir /24 ağında 256 adres bulunur ve bunların 254 tanesi kullanılabilir; çünkü ilk adres ağ adresi, son adres ise broadcast adresidir. Docker ayrıca ilk kullanılabilir adresi bir bridge ağının ağ geçidi olarak kullanır.
Boyut, temelin prefix değerinden küçük olamaz ve /30 ile sınırlıdır; çünkü bir ağın ağ geçidi ve en az bir container için yer ayırması gerekir.
İpuçları
- VPN'inizin ve ofis ağınızın kullanmadığı 10.0.0.0/8 veya 172.16.0.0/12 aralıklarından seçim yapın. 192.168.0.0/16 aralığına yakın aralıkların çakışma ihtimali en yüksektir; çünkü ev ve ofis router'ları bu aralıkları kullanır
- Varsayılan
docker0bridge her zaman 172.17.0.0/16 aralığını kullanır. Bu aralık ağınızla çakışıyorsabipdeğerini başka bir adrese ayarlayın; örneğin 10.200.0.1/24 - Sonucu Linux'ta
/etc/docker/daemon.jsonolarak veya Docker Desktop'ta Ayarlar → Docker Engine bölümüne kaydedin ve Docker'ı yeniden başlatın. Dosyada zaten bulunan ayarları değiştirmek yerine sonucu bu ayarlarla birleştirin default-address-poolsdeğişikliği yalnızca bundan sonra oluşturulan ağları etkiler. Mevcut ağları yeni aralığa taşımak için onları kaldırıp yeniden oluşturun- Birbiriyle çakışan havuzların yönetimi zordur; bu nedenle havuzları birbirinden ayrı tutun
- "önceden tanımlanmış tüm adres havuzları tamamen alt ağlara bölündü" mesajını gördüğünüzde Docker'ın kullanabileceği aralık kalmamış demektir. Daha fazla ağ elde etmek için daha geniş bir temel veya daha küçük bir ağ boyutu ekleyin