• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

volume 질문

21.08.19 18:51 작성 조회수 151

1

안녕하세요. 좋은 강의 잘 듣고 있습니다.

질문 1-1.

-v 옵션에서 앞 경로는 호스트(서버)의 경로이고 뒷 경로는 컨테이너 내부의 경로라고 하셨는데,

앞 경로가 이해가 안됩니다.

실습에서 보여주신건 

앞 경로는 도커로 만든 워드프레스 컨테이너의 경로이고,  

뒷 경로도 도커로 만든 mysql 컨테이너의 경로 아닌가요?

질문 1-2.

아니면 앞 경로가 도커로 만든 워드프레스의 데이터가 내컴퓨터에 저장이 되었고 그것을 가리키는 경로라고 이해하면 되나요?

질문 1-3.

뒷 경로가 /var/lib/mysql 이고 이게 컨테이너 내부의 경로라고 하셨는데요,

그럼 컨테이너 내부로 들어가기전에 컨테이너의 경로를 지정해주어야 한다고 생각하는데, 그거는 run 으로 mysql 컨테이너를 실행해주니까 따로 지정해주지 않는거라고 이해하면 되나요?

질문 2.

강의에서

docker stop mysql

docker rm mysql

의 명령어로 mysql 컨테이너를 삭제해도

“-v 앞 경로의 디렉토리로 다시 물고 올라가서, 컨테이너에 있는 디렉토리가 내 PC에도 있기 때문에 사라지지 않고 남아있다” 라고 하셨는데요

컨테이너를 지웠는데 디렉토리가 PC 어떻게 남아있는 건지 이해가 안됩니다. 

감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요! 자세한 질문 감사합니다.

먼저, mysql 컨테이너를 실행할 때 사용한 -v 옵션 맞으시죠?

질문 1-1에서 -v 옵션에서 앞부분은 Host, 뒷부분 컨테이너 경로를 가리킵니다. Host의 디렉토리와 컨테이너의 디렉토리를 연결하면 컨테이너에서 해당 디렉토리에 생긴 파일이 그대로 Host의 연결된 디렉토리에 생성됩니다. MySQL 컨테이너의 데이터베이스 파일이 저장되는 경로를 지정했기 때문에 Host에 해당 파일이 그대로 저장이 됩니다.

질문 1-2에서 워드프레스 데이터가 아니라  MySQL 데이터가 저장됩니다.

질문 1-3에서 단순히 컨테이너의 특정 경로에 저장되는 파일이 Host의 특정경로에 동일하게 저장된다고 보시면 됩니다.

질문 2에서 -v 옵션으로 Host의 디렉토리에 파일이 생성되었기 때문에, 컨테이너와 상관없이 관리된다고 보시면 될 것 같습니다.

정리하면, -v 옵션은 컨테이너의 디렉토리를 호스트의 특정 디렉토리에 연결하기 위해서 사용하고 컨테이너를 제거하면 컨테이너와 그 안에 생성된 파일은 삭제 되지만 호스트 디렉토리는 그대로 남기 때문에 삭제 되지 않습니다.

추가로 궁금한점 있으면 문의주세요. 감사합니다!!