• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

docker-compose의 volumes에 대한 질문입니다

21.09.28 14:07 작성 조회수 185

0

안녕하세요! 헷갈리는 것이 있는데 혼자 테스트를 해보아도 잘 모르겠어서 질문드려요!

 

docker-compose의 volumes를 이용했을때.. 어떤 경우에는 호스트의 폴더를 컨테이너의 폴더에 덮어 씌우고 

어떤 경우에는 컨테이너의 폴더를 호스트의 폴더에 덮어씌우는것 같아요.. 

전자의 경우 nginx컨테이너의 폴더가 덮어씌워짐 (호스트폴더:/usr/share/nginx/html)

후자의 경우 (컨테이너로 생성한 mysql의 폴더가 호스트에 생성됨)

 

무엇을 기준으로 이렇게 결과가 달라지는 건가요?! ㅠ_ㅠ

답변 2

·

답변을 작성해보세요.

0

김효민님의 프로필

김효민

질문자

2021.09.29

사진 아래의 nginx 설정의 경우 myweb(A)가 없고 html(B)가 있는 경우

즉 A가 없고 B가 없는 경우에도 A로 덮어씌워집니다. (html 폴더가 비워져있어요)

반면 mysql은 A가 B로 덮어씌워집니다.

mysql과 nginx가 같은 조건인데 왜 다른 결과가 되는지 모르겠습니다.

그리고 강의 수료했습니다 좋은 강의 감사합니다~!

가후님의 프로필

가후

2022.12.14

저도 수업하면서 같은 부분이 궁금했는데,

혹시 궁금하신 부분 해결되셨나요?

해결 되셨으면 실례지만 후학을 위해 알려주신다면 감사하겠습니다.

0

안녕하세요.

volumes 는 결국 A:B 라고 했을 때, 그 두 폴더이름이 동일한 저장소를 가리키게 되는건데요.

아무래도 A 가 없고, B 가 있을 때는 B 내용으로 덮어씌워지고, A 가 있고, B 가 없을 때는 A 내용으로 덮어씌워지니까, 이렇게 세부적으로 보면 은근히 여러 경우의 수가 있다보니, 동작이 상이해보이는 것 같아서, 그것을 이야기하신 것 같습니다. 위와 같이 생각해보시면 어떨까요? A 와 B 가 둘다 있을 때에는 A 또는 B 전체로 교체되는 것은 아니고, 둘다 덮어씌워진다고 보시면 어떨까요? 한번 각각의 케이스를 테스트해보시고 공유해주셔도 더 좋긴 할 것 같습니다. 

- A 가 없고, B 가 있을 때는 B 내용으로 덮어씌워지고,

- A 가 있고, B 가 없을 때는 A 내용으로 덮어씌워지니까