🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

데이터베이스 볼륨 설정

20.12.15 19:17 작성 조회수 246

0

데이터 베이스의 데이터는 mysql의 서버 상에 저장이 되는 것 아닐까요??

1. Mysql 상에 영속된 데이터로 저장이 된다면 볼륨이 굳이 필요없는 것이 아닌가요? MongoDB로 예를 들면, 클러스터에 데이터가 저장되어 있는데 왜 그 데이터를 로컬의 mysql_data로 가져오는 것일까요?

2. 만약 볼륨을 해주어야 한다면, 저희 디렉토리가 아니라 mysql의 서버 상의 데이터가 업데이트되는 공간과 var/lib/mysql을 volume 설정을 해주어야 하는 것이 아닌가요?

3. mysql_data 폴더가 없는 상태에서 compose-up 실행을 했는데 폴더와 그 안에 리소스들이 생성이 되었습니다. Volume을 하면, 로컬의 변화를 자동으로 반영을 해주면서 또한 컨테이너 상에서 변화가 먼저 일어나면 로컬에 반영을 해주는 것일까요?

4. Initialize.sql은 컨테이너에 copy를 해주지 않았는데 docker-entrypoint-initdb.d/ 에서 어떻게 sql의 intialize를 참조할 수 있는 것인가요? 그리고 docker-entrypoint-initbd.d 에 넣어둔 sql문은 시작시 자동으로 시작이 되나요??

답변 1

답변을 작성해보세요.

0

안녕하세요 답변이 늦은점 너무 죄송합니다 

1. mongoDB 클러스터는  mongoDB atlas 클라우드 서비스를 얘기하시는 건가요 ~ ? 
만약 맞다면       mongoDB atals  서비스는    RDS 서비스랑 같다고 보시면 됩니다.  그러기에 볼륨과는 비교하기가 애매합니다.
볼륨에 데이터가 저장되는 것이기 때문에 볼륨을 사용해서 DB를 구성한다면 계속 볼륨을 이용해주셔야 합니다.

2. mysql 서버는 컨테이너안있는데 이렇게 되면 컨테이너가 없어지면 결국 데이터도 없어지기에 데이터가 유지가 안됩니다.

3. 볼륨을 사용하면 컨테이너에서 볼륨쪽을 참조해주기때문에 먼저 참조해줄것이 완성되어있어야 참조가 가능합니다. 

4. docker-compose 에 보시면  /mysql/sqls:/docker-... 이런식으로 되어있습니다.   그리고 initialize.sql은 sql 폴더 안에 들어있습니다 !            넵  자동으로 참조 하게 됩니다 ! 

채널톡 아이콘