eubnara / study

6 stars 2 forks source link

docker storage driver / volume, bind mount #240

Open eubnara opened 3 years ago

eubnara commented 3 years ago

https://docs.docker.com/storage/storagedriver/

overlay2 를 사용할 때, open / rename 시 주의해야할 사항 참고 https://docs.docker.com/storage/storagedriver/overlayfs-driver/#limitations-on-overlayfs-compatibility

eubnara commented 3 years ago

bind mount https://docs.docker.com/storage/bind-mounts/

-v--mount 는 거의 비슷하게 사용할 수 있으나 다음 차이점이 있다. 호스트에 없는 파일이나 디렉터리를 마운트하려 했을 때, -v 옵션은 무조건 디렉터리를 생성한다. --mount 옵션은 에러를 발생시킨다. https://docs.docker.com/storage/bind-mounts/#differences-between--v-and---mount-behavior

eubnara commented 3 years ago

container 안 특정 경로에 이미 파일이나 디렉터리가 있을 때 bind mount 와 volume 동작이 다르다.

일단 컨테이너 안의 내용을 기준으로 처음 컨테이너를 시작하고 싶을 때 volume 을 사용하는 게 좋다. 이후 volume 에 내용을 수정하더라도 volume 을 정리하지 않는 한 유지된다. 무언가 로그나 설정파일 같은 류를 이용할 때 좋을 것 같다. 컨테이너를 중지, 제거하고 다시 같은 볼륨을 사용하더라도 유지된다.

호스트에 있는 파일이나 디렉터리를 따로 관리하고 무조건 이를 기준으로 마운트하고 싶으면 bind mount 가 어울린다. 가령 설정파일을 무언가 git 저장소로 또 따로 관리하는데 이를 sync 맞춘 후 컨테이너를 띄울 때 마운트하는 식으로.

상황에 따라 알맞게 쓰면 될 것 같다.