환경: docker, mongo 5.0.9
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.
docker-compose.yml 에 아래와 같이 설정하여 docker-compose up 명령어로 실행 시..
db client tool에서는 아래와 같이 접속을 시도해야한다.
mongodb://nhn:nhn@localhost:3307
유저를 주지 않으면 authentication 에러가 나고, 잘못된 포트를 주면 connection 에러가 난다..
An error occurred while loading instance info: command hostInfo requires authentication
connect ECONNREFUSED 127.0.0.1:27017
여기서 헷갈렸던 부분이 포트인데, yml에는 3307:27017 이렇게 적혀있어서 왜 저렇게 쓰는지 의문이었는데,
앞 포트(3307)은 외부 노출 포트고 뒤 포트(27017)는 컨테이너 포트인 것 같다.
Expose ports.
Either specify both ports (HOST:CONTAINER), or just the container port (a random host port will be chosen).
어쨋건 mongoDB의 내용을 더 편하게 볼 수 있는 클라이언트(mongo compass)까지 확인 완료.
위 내용은 intellij에서도 확인가능하며 콘솔 명령어로도 조회할 수 있어 더 편리한 것 같다.
mongo db 간단 명령어
# mongo 접속
mongo -u nhn -p nhn
# 현재 로그인 정보
db.runCommand({connectionStatus: 1})
# db list
show dbs
# db change
use webflux
# see table
show tables
= show collections
# table을 collection이라고 부름에 주의
# chat table 조회
db.chats.find()
아래 명령어가 정리된 문서가 있는데, collection에 실제 콜랙션 이름을 넣어야 한다. collection은 일반 dbms의 테이블과 같은 용도이다.
https://www.mongodb.com/docs/manual/reference/mongo-shell/
그리고 보다보니 find와 aggregate가 비슷해 보였는데(일반 select절의 where문과 같이 필터링하는 역할) 깊이 보면 차이가 있는 듯하다.
https://secretartbook.tistory.com/21
아직 실제로 막 써보지 않아서 와닿지는 않는다.
https://blog.silnex.kr/dockerdocker-compose-%EC%A0%95%EB%A6%AC/
'서버 세팅 & tool > docker' 카테고리의 다른 글
[windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅 (0) | 2024.02.12 |
---|---|
[windows] docker 이미지 만들고 올리고 실행 (0) | 2024.02.10 |
[windows] docker; 컨테이너 가상화 (0) | 2024.02.10 |
docker, kubernetes, container, vm (0) | 2022.08.23 |
[docker] mysql (0) | 2022.06.10 |