2016-02-29 17 views
5

documentation about networking is currently bu konuda çok belirsiz - bir sanal ağ oluşturan bir docker-compose.ymlbir sanal ağı nasıl gerçekleştirirsiniz, o ağda tanımladığı hizmetlerin (kapsayıcılar) iletişim kurmasını sağlar?Sürüm 2 docker-compose tanım dosyasındaki bir ağı nasıl tanımlarsınız?

Bu senaryoda hedef, docker-compose için tanımlanan kapsayıcı grubu için önceden tanımlı bir ağa dayanmamaktır. Bunun yerine, docker-compose tanım dosyasında kendi kendine yer alan ağ tanımına sahiptir. A uygulama portuna 9000. o B:9000 olurdu için kullanacağı host:port dinleyen B içine paketlenmiş uygulama erişim için ana makine olarak adını B kullanıldığı takdirde önceden tanımlanmış ağıyla

, aşağıda bu işe yarar (daha özel olarak benim durumumda uri mongodb://B:9000).

foo: 
    net: my-pre-defined-network 
    container_name: A 
    image: foo 
bar: 
    net: my-pre-defined-network 
    container_name: B 
    image: bar 
    ports: 
    - "9000:9000" 

Ama benim açımdan bir değil varsayarak liman işçisi-oluşturma yapılandırması içinde bir şebekeyi tanımlayan bir

TL tanımlanan a-priori ... vardı; DR

varsayılan bir ağ otomatik olarak oluşturulur. Bu ağdaki kapsayıcıların nasıl adresleneceği için https://docs.docker.com/compose/networking/'un başlangıç ​​bölümüne bakın.

+0

Hangi ağı tanımlamak istiyorsunuz? –

+0

Docker-compose tarafından çalıştırılan iki kap arasında bağlanacak bir. Şimdilik aynı ana bilgisayar. – matanster

cevap

8

Oluştur sürece sürüm 2 biçimini kullanan olarak sizin için bir default ağ oluşturmak, ancak ağları özelleştirmek istiyorsanız dokümanlar Buradasınız:

Compose dosyasının en üst düzeyindeki bir networks bölümü oluşturabilir ve her hizmetin networks bölümüne başvurabilirsiniz. Ama gerek yok, sadece aşağıdaki yorumlarda açıklandığı gibi varsayılan ağı kullanın.

+0

İçerdiği bir uygulamanın, o zamanki varsayılan ağda (kapsayıcı adı veya bunun için localhost' çalışması) diğeriyle iletişim kurmak için kullanması gereken ana bilgisayar adı olacağından emin değilim. Moreso, “docker-compose up” 'un çalıştırılmasından sonra 'docker network ls''de varsayılan olarak oluşturulan ağ yok. – matanster

+0

Bazı garip görüntü/oluşturma önbellekleme, çeşitli girişimlerimi boşa harcamazsa .. – matanster

+0

Sürüm 2 biçimini kullanırsanız, proje adı varsayılan olarak proje dizininin temel adının bulunduğu 'projectname_default' adlı bir ağ oluşturur. Hizmetin adını bağlanmak için ana bilgisayar adı olarak kullanırsınız. Yani örneğinizde 'foo' ve' bar'. – dnephin

İlgili konular