다른 컨테이너의 도커 몽고 이미지 '연결 거부됨'
도커가 처음입니다.MongoDB 컨테이너와 노드를 생성하려고 합니다.JS 컨테이너.내 파일 모양:
version: '2'
services:
backend:
image: node:5.11-onbuild
ports:
- "3001:3001"
volumes:
- .:/code
working_dir: "/code"
links:
- mongodb
mongodb:
image: mongo:3.3
expose:
- 27017
실행되어야 합니다.npm install그리고 나서.node ..그렇지만docker-compose up으로 끝나다[MongoError: connect ECONNREFUSED 127.0.0.1:27017]명령하는 동안node .저는 이것이 그것 때문이라고 생각합니다.bind_ip = 127.0.0.1서류철에/etc/mongod.conf.이게 맞나
Win10 시스템에서 boot2docker를 사용합니다.
노드가 MongoDB에 연결할 수 있도록 이 문제를 어떻게 해결할 수 있습니까?
백엔드 앱에서 다음에 연결합니다.mongodb:27017대신에127.0.0.1:27017여기서 'mongodb'는 docker-compose.yml 내의 서비스 이름입니다.
저는 최근에 비슷한 문제에 직면했습니다.저는 win 10 아래에서 도커 도구 상자를 운영하고 있으며 다음과 같이 작동했습니다.
기본 도커 컴퓨터에서 사용하는 URL을 확인해야 했습니다.실행하면 확인할 수 있습니다.docker-machine ls지휘권사용 가능한 컴퓨터가 나열됩니다.
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:1234 v17.06.0-ce
rancher-client - virtualbox Stopped Unknown
rancher-server - virtualbox Stopped Unknown
mongodb 이미지를 실행할 때 포트 매핑 지정
docker run -d -it -p 27017:27017 mongo
그 시점에서 유효한 몽고 URL은 다음과 같습니다.
var dbhost = 'mongodb://192.168.99.100:27017/test
어디에192.168.99.1001번 지점의 기본 시스템 URL)
누군가에게 도움이 되길 바랍니다.
가장 가능성이 높습니다. 127.0.0.1은 mongodb 컨테이너 내부의 localhost를 가리키기 때문에 컨테이너 외부에서는 액세스할 수 없습니다.0.0.0.0에 바인딩하면 작동할 수 있습니다.
도커-compose.yml에서 지정한 링크를 사용하여 백엔드 컨테이너는 다음을 통해 mongo 컨테이너에 연결할 수 있습니다.mongodb:27017
컨테이너에 localhost 대신 자체 IP 주소를 사용하도록 지시해야 합니다.
예를 들어, 비계 코드를 다음과 같이 생성했다고 가정합니다.expressjs당신은 편지를 써야 합니다.routes/index.js
var mongodb = require('mongodb');
router.get('/thelist', function(req, res){
// Get a Mongo client to work with the Mongo server
var MongoClient = mongodb.MongoClient;
// Define where the MongoDB server is
var url = 'mongodb://172.17.0.5:27017/dbname';
// Connect to the server
MongoClient.connect(url, function (err, db) {
.........
어디에172.17.0.5그것은$CONTAINER_IP
컨테이너 ip를 찾을 수 있습니다. $ docker inspect $CONTAINER_HOSTNAME | grep IPAddress
그래도 이해할 수 없다면 도커 노드 JS 및 MongoDB 앱을 볼 수 있습니다.
변했어요
mongodb://admin:admin@127.0.0.1:27017/admin
로.
mongodb://admin:admin@mongo:27017/admin
그리고 그것은 동작한다.
https://stackoverflow.com/a/34711892/3841211 에 답변해 주셔서 감사합니다.
언급URL : https://stackoverflow.com/questions/34711642/docker-mongo-image-connection-refused-from-other-container
'programing' 카테고리의 다른 글
| 세그멘테이션 결함 처리 (0) | 2023.06.29 |
|---|---|
| 공통 테이블 식, 세미콜론이 필요한 이유는 무엇입니까? (0) | 2023.06.29 |
| Git: fatal: Pathspec이 하위 모듈에 있습니다. (0) | 2023.06.29 |
| 빈 UI 텍스트 필드에서 백스페이스 검색 (0) | 2023.06.29 |
| WordPress - wp.media를 사용하여 메타박스에 갤러리 오버레이 추가 (0) | 2023.06.29 |