Docker'ı 172.17.0.0 aralığını kullanmayacak şekilde yapılandırma


22

Esir portalları ve varsayılan Docker IP aralığıyla ilgili sorunlar nedeniyle Docker'ın, yaşadığım trenlerde kullanılan esir portallarla çakışan 172.17.0.0 yerine 198.18.0.0 serisini kullanmasını sağlamaya çalışıyorum.

Belgeleri takip ettikten sonra oluşturdum /etc/docker/daemon.jsonve içine şunu yazdım :

{
    "bip":"198.18.0.0/16"
}

Bu, liman işçisi0 için çalıştı, ancak diğer ağlardan hiçbirini etkilememiş gibi görünüyor ve liman oluşturucuyu kullanarak oluşturulan ilk ağı oluşturmak, çatışmayı yeniden yaratan 172.17.0.0.

Tüm liman işçisi ağları için varsayılan alt ağı değiştirmek için ne yapabilirim (tercihen, her oluşturma dosyasında özel IP aralığımı belirtmek zorunda kalmadan)?

Yanıtlar:


27

Varsayılan aralığı yeniden tanımlamak mümkündür.

$ docker -v
Docker version 18.06.0-ce, build 0ffa825

Liman işçisi arka plan programı için yapılandırma dosyası düzenleyin veya oluşturun:

# nano /etc/docker/daemon.json

Satır ekle:

{
  "default-address-pools":
  [
    {"base":"10.10.0.0/16","size":24}
  ]
}

Dockerd'ı yeniden başlatın:

# service docker restart

Sonucu kontrol et:

$ docker network create foo
$ docker network inspect foo | grep Subnet
                    "Subnet": "10.10.1.0/24"

Liman işçisi için de çalışıyor. Daha fazla bilgi burada https://github.com/moby/moby/pull/29376 (birleştirilmiş)


1
10.10.0.0/16, global varsayılan ağlarla örtüşüyor. {"Base": "192.168.0.0/16","size":24} kullanabilirsiniz. Lütfen bkz. Github.com/moby/moby/blob/…
Root G

11

Docker'ın ağ alt ağları oluşturacağı üç yer var.

  • Varsayılan köprü
  • Kullanıcı tarafından oluşturulan köprü ağları
  • Sürü modu oluşturulan bindirme ağları

(Bunun Köprü IP inanmak; ( "Köprü" olarak adlandırılır) varsayılan köprü için, BIP belirtebilirsiniz emin bir ana bilgisayar IP değil, bir ağ IP var olun ) içinde daemon.jsondosyanın. Ve kullanıcı tarafından oluşturulan köprü ağları için, seçilecek bir alt ağ havuzu tanımlayabilirsiniz (kullanıcının manuel olarak bir alt ağ belirtmediği varsayılarak). Bu ikisi için /etc/docker/daemon.json, şöyle görünürdünüz:

{
  "bip": "10.200.0.1/24",
  "default-address-pools":[
    {"base":"10.201.0.0/16","size":24},
    {"base":"10.202.0.0/16","size":24}
  ]
}

Yukarıdaki her adres havuzu ayarı, bir CIDR aralığını ve bu aralıktan ayrılacak alt ağların boyutunu tanımlar. Bu yüzden yukarıdakiler, C sınıfı ağlar olarak tahsis edilen iki sınıf B aralığını tanımlar (/ 24). Varsayılan adres havuzları için en az 18.06'ya ihtiyacınız vardır. Bu değişikliğin geçerli olması için docker arka planını yeniden yüklemeniz gerekir ( systemctl reload docker). Bu değişiklik yalnızca yeni oluşturulan kullanıcı ağlarını değiştirecektir, bu nedenle kapları durdurmanız ve mevcut ağları yanlış aralıkta silmeniz gerekir.


18.09'da Docker, oluşturulan swarm modu için bindirme ağları için adres aralığını belirleme özelliğini ekledi. Bu sadece şu anda sürü oluşturma zamanında yapılabilir, umarım gelecekte docker swarm updatebu havuzları düzenlemeye izin verecek şekilde güncellenecektir :

$ docker swarm init \
  --default-addr-pool 10.202.0.0/16 \
  --default-addr-pool 10.203.0.0/16 \
  --default-addr-pool-mask-length 24

1
Mevcut 2018/2019 seçeneklerinin harika özeti. Ayrıca, Masaüstü Dock kullanıyorsanız bip, Ayarlar / Tercihler GUI'deki seçenek. İçin default-address-poolso aynı GUI elle daemon.json düzenleyin ve sürüsü için var olabilir default-addr-poolHala onları değiştirmek initkomuta.
Bret Fisher,

1

Yapılandırma varsayılan köprü ağı "Sen daemon.json seçenekleri belirleyin ... varsayılan köprü ağı yapılandırmak için Buraya belirtilen çeşitli seçeneklerle bir örnek daemon.json Yalnızca özelleştirmek için gereken ayarları belirtin ......":

Oluşturma ile: Özel ağları belirtin : "... Yalnızca varsayılan uygulama ağını kullanmak yerine, kendi ağlarınızı en üst düzey ağ anahtarıyla belirleyebilirsiniz. Bu, daha karmaşık topolojiler oluşturmanızı ve özel ağ sürücüleri ve seçenekleri belirlemenizi sağlar. Hizmetleri, Oluşturma tarafından yönetilmeyen, dışarıda oluşturulan ağlara bağlamak için kullanın.


Docker-compose tarafından kullanılan örtülü ağlar için kullanılan IP aralığını ve aralığın açıkça ayarlanmamış olanlarını değiştirmek mümkün müdür?
jrtapsell

-1

Biraz acımasız olabilir ama ben sadece sudo ifconfig docker0 downkullanmaya çalıştığım wifi ile çakışan arayüzü kapatmak için yapıyorum .


Soru, ağ bağlantısının kapatılması değil, başka bir kullanım alanı ile ilgilidir.
RalfFriedl

@RalfFriedl Bu doğru. Ancak birçok farklı wifi ağını kullanan sık seyahat eden bir gezgin olarak, her çeşit liman aralığının çatışma içinde olduğunu gördüm. Dolayısıyla, bir bağlantı noktası aralığını aramak yerine, bir kişi de ağı geçici olarak kapatabilir.
Falko Menge
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.