sql >> Database >  >> NoSQL >> MongoDB

Meerdere Docker-containers en MongoDB instellen om te draaien in CircleCI

Het probleem heeft te maken met het punt van oorsprong. Als u localhost vanuit een Docker-container benadert, verwijst de localhost naar de docker zelf, niet naar de hostserver, en daarom bereikt de oproep de host of de andere dockers niet.

Als al uw dockers zich op dezelfde hostmachine bevinden, is de eenvoudigste manier om ze met elkaar te laten praten via localhost door een netwerk te delen tussen de containers die worden uitgevoerd. Voer eerst de backend normaal uit en start vervolgens de andere containers met de --net schakelaar:

docker run [other params] -d -p 8080:8080 --name service-app-container service_app_image docker run [other params] -p 3000:3000 --net="container:service-app-container" --name client-app-container client_app_image

Nu moeten alle poorten die worden weergegeven en toegewezen door een van de containers die het netwerk delen, bereikbaar zijn onder localhost vanaf elk van de dockers.

  • Gebruik machine:8080 om overal toegang te krijgen tot de service-app-container.
  • Gebruik localhost:8080 om lokaal toegang te krijgen vanaf de hostserver.
  • Gebruik locahost:8080 om het intern vanuit de service-app te openen.
  • Gebruik localhost:8080 om toegang te krijgen tot de service-app vanuit de client-app

De client-app wordt alleen via poort 3000 aan de wereld blootgesteld als u deze ook blootstelt in de docker die de container heeft. De blootgestelde poort mag niet dezelfde zijn, omdat dit het netwerk in de war brengt:

docker run [other params] -d -p 8080:8080 3001:3000 --name service-app-container service_app_image docker run [other params] -p 3000:3000 --net="container:service-app-container" client_app_image

Nu kon je van buitenaf toegang krijgen tot de client-app met machine:3001.




  1. MongoDB-aggregatie om ontbrekende maanden tussen twee datums toe te voegen na groepering op datumveld

  2. Maak een back-up van een MongoDB-database met mongodump

  3. Is er een Polymer-component die de communicatie met MongoDB vereenvoudigt?

  4. Is het mogelijk om een ​​berekend veld van een MongoDB-query te retourneren?