SORU
16 HAZİRAN 2014, PAZARTESİ


Nasıl docker konteyner bunu yeniden't won arasında bağlantı kur bu haberi?

Birkaç dockers kaplar gibi çalıştırıyorum

  • Nginx
  • Web uygulaması 1
  • Web uygulaması 2
  • PostgreSQL

Server içinde web Uygulama 1 ve 2, ve web uygulamaları postgresql konuşmam gerek web uygulaması için Nginx gerektiğinden, bu gibi bağlantıları var

  • --- Link - - - ^ Nginx . Web uygulaması 1
  • --- Link - - - ^ Nginx . Web uygulaması 2
  • Web 1 --- link - - - ^ app . PostgreSQL
  • Web 2 --- link - - - ^ app . PostgreSQL

Bu uygulama 1 ve web uygulaması yeni versiyonunu geliştirirken başlangıçta, ancak, 2 değiştirmek istiyorum oldukça iyi çalışıyor. Ben ne web app kaplar, Kur yeni kapları kaldırmak ve onları başlamak için.

Web app kaplar için, çok önce, IP adresi gibi bir şey olur

  • 172.17.0.2
  • 172.17.0.3

Ve ben onları değiştirmek sonra, yeni IP adresleri var

  • 172.17.0.5
  • 172.17.0.6

Şu anda Nginx konteyner olanlar açığa ortam değişkenleri hala eski IP adresleri işaret etti. Diğer kaplar ile bağlantısını koparmadan bir konteyner değiştirmek için nasıl burada sorun geliyor? Aynı sorunu da olmasını PostgreSQL, istersem yükseltme PostgreSQL görüntü sürümü, kesinlikle ihtiyacımız kaldırmak ve yeni bir tane, ama o zaman ihtiyacım var yeniden oluşturmak için tüm konteyner grafiği, Bu iyi bir fikir değil ... gerçek sunucu işlemi.

CEVAP
25 HAZİRAN 2014, ÇARŞAMBA


--link etkisi senaryonuz için (3 ** ancak şu anda yeniden bağlantı yok) bu yüzden işe yaramaz, statik.

Dockerize iki farklı yaklaşım kullanmaktayız.bunu çözmek için, bağlantılar veya elçileri elçileri de ekleyebilirsiniz rağmen) olmadan.

1) Dinamik DNS Kullanın

Genel fikrin veritabanı (ya da başka bir hizmet için tek bir ad belirtin ve başlangıç olarak gerçek IP ile kısa süreli bir DNS sunucu güncelleme ve konteyner durdurun.

SkyDock ile başladık. İki docker konteyner, DNS sunucusu ve otomatik olarak güncelleyen bir monitör ile çalışır. Sonra bir şey daha özel Consul (dockerized bir sürümünü kullanarak: docker-consul) kullanarak taşındık.

Bu bir evrim denemedik) Kur etcd ya da benzer olacak ve kendi özel API IP'leri ve portları öğrenmek için kullanın. Yazılım dinamik yeniden yapılandırılması çok destek gerekir.

2) docker köprü ıp adresini Kullanın

Konteyner limanları açığa zaman vardır (ya da olabilir) iyi bilinen bir adresi olan docker0 köprü, onları bağlayabilirsiniz.

Yeni bir sürümü ile bir kap değiştirirken, sadece yeni konteyner aynı IP aynı port yayınlamak olun.

Bu basit ama daha sınırlı da değildir. Belki senin bağlantı noktası çakışmaları çalıştırırsanız benzer yazılım (örneğin, iki kapsayıcı olamaz dinle 3306 portu docker0 köprü), etcétera... yani bizim şimdiki favori seçenek 1.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • Learn Math Tutorials

    Learn Math T

    20 Kasım 2011
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011