MongoDB, Docker, Meteor: Connection Refused

Meteor works perfectly if I run “meteor“. If I setup MongoDB and run Meteor with MONGO_URL set to “mongodb://” then it too works perfectly. However, if I run a Docker Container that calls exactly the same Meteor files on the same machine with the MONGO_URL set as above then I get the error: “Exception in callback of async function: Error: failed to connect to []”. Logic would state that the introduction of Docker is causing the problem. Therefore, is there something I must do to specifically allow Meteor to call MongoDB from inside a container – such as something additional with the MongoDB ports etc.

Dockerfile is:

  • How can I access both ports 8080 and 9990 on bluemix single container for wildfly?
  • Can't run docker - repository does not exist
  • cannot connect to service hosted in ECS built through cloudformation template
  • Merge container files when using docker-sync
  • Can not add a volume to Mongodb Docker instance
  • What is the benefit of Docker container for a memcached instance?
  • FROM ubuntu:14.04 
    RUN apt-get update -y && apt-get install --no-install-recommends -y -q chrpath libfreetype6 libfreetype6-dev libssl-dev libfontconfig1 
    RUN apt-get install --no-install-recommends -y -q build-essential ca-certificates curl git gcc make nano python 
    ENV PATH /bin:/usr/local/sbin 
    RUN curl | sh 
    ENV PORT 3000 
    ENV MONGO_URL mongodb:// 
    EXPOSE 3000 
    CMD [ "meteor" ] 
    RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

    Meteor is called with the following:

    docker run --name meteor-dev -it -p 3000:3000 -v /machine/meteor:/opt/meteor -w /opt/meteor meteor-dev 

  • Windows Containers - culture settings
  • What is the simplest way to install Redis in Docker+Vagrant
  • impossible to delete a container
  • Limit USB devices exposed to docker
  • Use docker build step plugin in Jenkins docker container
  • exec not found using Dockerfile ENTRYPOINT
  • One Solution collect form web for “MongoDB, Docker, Meteor: Connection Refused”

    When you are running a container it creates its own network which is isolated from host network.
    So when you are tying to connect to Mongo using “mongodb:// it searches for MongoDB inside your container.

    Instead of using use the host ip addresss or hostname.

    Or if your MongoDB is running from a container create a link and use the link to start meteor container. Hope this helps

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.