Docker

[Docker] 10. 도커(Docker) 볼륨 마운트 하여 로컬 파일 공유

Yoon 2021. 12. 23. 22:26

마운트?

물리적인 장치를 특정 디렉토리에 연결시켜주는 것을 말함.

 

도커에서 볼륨 마운트 옵션을 사용하여 호스트에 있는 특정 데이터나 폴더와 컨테이너를 마운팅하여

마운팅된 호스트 디렉토리와 컨테이너의 디렉토리가 매핑되어 도커의 생명주기와 관계없이

데이터를 영속성으로 저장할 수 있게된다.


볼륨 마운트 옵션

docker run -v {hostDirectory}:{containerDirectory}:{authority}
authority
ㄴ ro : 읽기 전용
ㄴ rw : 읽기 및 쓰기

-v옵션을 통해 호스트 디렉토리와 컨테이너 디렉토리를 특정 권한을 주고 마운팅 할 수 있다.

 

nginx 컨테이너를 구축할 때 -v옵션을 사용하여 마운팅한 예제 명령어이다.

호스트의 /var/www 디렉토리와 nginx 컨테이너의 /usr/share/nginx/html 경로를 읽기 및 쓰기 권한으로 마운팅 시킨 것이다.

 

컨테이너를 생성하여 실행 후 웹으로 접속해보면

403에러가 뜰 것이다.

이 이유는 호스트 디렉토리인 /var/www/ 에는 아무 파일이 없기 때문이다.

즉 마운팅된 호스트와 컨테이너는 공유 관계이기 때문에 컨테이너의 html디렉토리에도 아무 파일이 없어 403에러가 노출이 되는 것이다.

마운팅된 호스트 디렉토리에 index.html파일을 만들면

에러 페이지가 뜨던 nginx가 index.html을 보여주는 것을 확인할 수 있다.

그 이유는 해당 호스트 디렉토리와 nginx의 html 디렉토리는 마운팅 되어 있기 때문이다.

호스트에서 만들었던 파일을 nginx에서도 만들어진 걸 볼 수 있다.

 

반대로 nginx의 html경로에 파일을 수정을 하면 당연히

마운팅된 호스트 디렉토리에 있는 index.html도 수정이 되어있는 것을 확인할 수 있다.