백엔드 개발
Docker DB 컨테이너
browoo97
2022. 10. 23. 20:22
- 데이터 유지
DB 컨테이너 경우 컨테이너가 종료되더라도 기존 저장된 DB 데이터들은 어딘가에 저장하고 있어야 한다.
이를 위해 볼륨을 사용하여 호스트 머신에 DB 데이터를 저장하여 컨테이너가 종료되더라도 데이터를 유지시킬 수 있도록 한다.
MongoDB 이미지 레퍼런스를 보면 Mongo 컨테이너는 데이터를 /data/db 경로에 저장한다고 나와있다. 이 컨테이너 경로를 명명된 볼륨과 매핑하여 컨테이너를 실행하여 DB 데이터를 볼륨을 통해 지속적 데이터로 유지시킨다.
ex) docker run --name mongodb -v {볼륨명}:/data/db --rm -d mongo
- 보안과 엑세스 방지
MongoDB 이미지는 두 가지 환경 변수를 지원한다.
1. MONGO_INITDB_ROOT_USERNAME
2. MONGO_INITDB_ROOT_PASSWORD
이 두 환경변수를 사용하여 DATABASE에 엑세스 접근을 제한한다.
이를 위해 환경변수를 추가하여 컨테이너를 실행해야 한다.
ex)
$ docker run -d --network some-network --name some-mongo \
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
-e MONGO_INITDB_ROOT_PASSWORD=secret \
mongo
MongoDB 이미지 : https://hub.docker.com/_/mongo