인프런 커뮤니티 질문&답변

김효민님의 프로필 이미지
김효민

작성한 질문수

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]

나만의 웹서비스 + 워드프레스 서비스 만들기3

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

작성

·

239

0

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

 

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

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

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

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

 

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

답변 2

0

김효민님의 프로필 이미지
김효민
질문자

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

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

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

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

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

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

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

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

0

안녕하세요.

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

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

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

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

김효민님의 프로필 이미지
김효민

작성한 질문수

질문하기