본문 바로가기

클라우드/Docker

도커 컨테이너 커밋 & 포트 바인딩

MongoDB 컨테이너에 실수로 포트 바인딩을 안 해줬다.

현재까지 작업한 컨테이너를 도커 이미지로 만들고 다시 컨테이너로 만들어서 포트 바인딩을 해주자

 

1. 현재 로컬 호스트에서 실행 중인 컨테이너 확인 

2.  컨테이너를 새로운 이미지로 생성

#docker commit [contain id] [username/imagename]
> docker commit 3eb9f46e874a mongodb:1

3.  이미지 확인

3.  컨테이너 재실행하면서 포트바인딩 해주기

- 도커 내부의 27019번 포트를 호스트 머신의 27019번 포트로 매핑하여 외부로 오픈해준다. 

- Mysql 문자셋 utf8m64설정 한 거 처럼 mongodb도 그렇게 해줄려고 했는데..안해도 된다.. 링크 참조함.

(https://stackoverflow.com/questions/26167421/is-it-possible-to-store-utf8-mb4-in-mongodb)

# 1. Expose port
# docker run -p [외부 포트]:[도커 컨테이너 내부의 포트]

> docker run -d -p 27019:27019 --name spring-mong mongodb:1

4.  컨테이너 이름 변경

실수로 spring-mong이라고 저장해서 spring-mongoDB로 변경

# docker rename CONTAINER NEW_NAME
docker rename spring-mong spring-mongoDB

5.  확인

참고로 나는 mongo 버전을 6.0으로 설치했기때문에

mongo가 아니라 mongosh를 사용해야한다.