2015-05-02 22 views
5

Express'i kullanan ve bir (boot2docker) docker mongo konteynerine bağlanan bir düğüm uygulamasını çalıştırmak istiyorum.Düğüm/Ekspres uygulaması, docker mongodb'a bağlanamıyor

Ben ilk app yazdım, ben MongoDB bir yerel olarak yüklü örneği kullanıyordum ve aşağıdaki yapılandırma çalıştı:

module.exports = { 
    env: 'development', 
    mongo: { 
    uri: 'mongodb://localhost/fullstack-dev' 
    } 
}; 

Ve beklendiği gibi koştu.

Şimdi bir docker mongo örneği için takas etmeye çalışıyorum.

Yani, Mongo yayınlanmasını sağlamak için aşağıdaki adımları yaptık: Bu noktada

$ docker pull mongo:latest 
$ docker run -v "$(pwd)":/data --name mongo -d mongo mongod --smallfiles 
$ docker ps 

#my mongo instance is 442c2541fe1a 
$ docker exec -it 442c2541fe1a bash 
$ mongo 

, benim komut isteminde çalışıyor görünüyor.

$ boot2docker ip 
# the IP returned: 192.168.59.103 

Yani, o zaman, ben aşağıdaki nodejs config eski mongodb yolunu dışarı takas gitti:

Sonra ben osx üzerinde liman işçisi çalıştıran boot2docker vm IP'sini almaya çalıştı

module.exports = { 
    env: 'development', 
    mongo: { 
    uri: 'mongodb://192.168.59.103:27017/fullstack-dev' 
    } 
}; 
ve uygulamayı çalıştırdığımda bir bağlantı hatası alıyorum.

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: failed to connect to [192.168.59.103:27017] 

MEAN yığın uygulamamı docker'ified mongodb örneğiyle bağlamak için uygun yapılandırma nedir?

cevap

7

Sen -p argüman yani sahip konteyner üzerinde uygun bağlantı noktasını yayınlamak gerekir:

docker run -p 27017:27017 -v "$(pwd)":/data --name mongo -d mongo mongod --smallfiles 
liman 27017 üzerinde ev sahipliği (sizin durumunuzda VM) ve forward trafiğe erişilebilen bağlantı noktasını 27017 yapacak

konteyner