
docker 허브/mongodb에 작성된 대로 이 docker-compose 파일을 만든 다음 docker-compose up -d
꽤 표준적인 명령을 사용하여 컨테이너를 시작합니다.
# Use root/example as user/password credentials
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
bf4a595a508d mongo-express "tini -- /docker-ent…" About an hour ago Up About an hour 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp intake-app_mongo-express_1
b5fcc2d2386d mongo "docker-entrypoint.s…" About an hour ago Up About an hour 27017/tcp intake-app_mongo_1
이제 백엔드를 연결하려고 합니다.
postresql을 사용하면 다음과 같습니다.
postgresql://root:example@localhost:8081/db_name
몽고는 어떻게 될까요?
추신: 웹 브라우저에서 http://localhost:8081로 DB에 연결할 수 있지만 명령줄에서는 mongo
.
답변1
로부터공식 도커 허브 페이지:
이미지의 MongoDB 서버는 표준 MongoDB 포트인 27017을 수신하므로 Docker 네트워크를 통한 연결은 원격 mongod에 연결하는 것과 동일합니다.
어디서 어떻게 연결하는지 명시하지 않습니다. 다른 컨테이너인 경우 포트를 직접 사용할 수 있습니다. 그렇지 않으면 먼저 포트를 노출해야 합니다.
연결 문자열은 일반적으로공식 문서:
mongo mongodb://$[hostlist]/$[database]?authSource=$[authSource] --username $[username]
mongo-express
위의 세부 정보를 가져오는 데 사용한 컨테이너를 사용하거나 Docker 허브 README에서 사용할 수도 있습니다 . 귀하의 경우에는 다음과 같습니다.
mongodb://root:example@mongo:27017/
클라이언트가 동일한 스택의 Docker 컨테이너에 없으면 첫 번째 mongodb
컨테이너에서 포트 27017을 노출해야 합니다.
ports:
- "27017:27017"