• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

docker-compose.yml에서 db_data가 이해가 되지 않습니다 ㅜㅜ

21.04.06 14:33 작성 조회수 31

2

삭제된 글입니다

답변 1

답변을 작성해보세요.

0

가장 아래에 있는 volumes는 도커 컴포즈가 관리하는 가상 디스크라고 볼 수 있습니다.

volumes:
  db_data: {}

라고 선언하여 db_data라는 가상 디스크를 하나 만들었다고 보시면 됩니다.

두 번째로, mysql 서비스 안에서 volumes를 다음과 같이 설정하여

mysql 컨테이너 내부의 특정 위치와 호스트 컴퓨터의 특정 위치(=타깃 폴더)를 연결할 수 있는데요.

volumes:
 
- {타깃 폴더}:{mysql 컨테이너 내부의 위치}

이 기능을 사용할 때 '타깃 폴더' 대신 우리가 만들었던 db_data 가상 디스크를 써줄 수도 있습니다.

종합하여, 다음과 같이 docker-compose.yml 파일을 선언하면 되겠습니다.

...
mysql:
  ...
  volumes:
    - db_data:/var/lib/mysql  # 아래에서 선언한 db_data 디스크를 사용합니다

...
volumes:
  db_data: {}   # db_data라는 가상 디스크를 만듭니다

답변이 이해되지 않는다면 얼마든지 다시 물어보셔도 됩니다. ^^

hhglng님의 프로필

hhglng

질문자

2021.04.07

친절한 답변 감사합니다! 가상 디스크를 만드는 이유는 테스트용 인가요? 

hhglng님의 프로필

hhglng

질문자

2021.04.09

실수로 이 디렉터리가 지워진다거나 소스코드 버전 관리 시스템에 들어가버리면 낭패일 겁니다. 이 디렉터리를 직접 관리하지 말고 도커에 맡겨봅시다. docker-compose.yml 파일을 다음과 같이 수정합니다.


글을 보고 이해했습니다!