1. 사용 목적
docker의 데이터를 유지 시키기 위해 크게 Volumes 또는 Bind Mounts를 사용한다.
2. Bind Mounts
- 호스트의 파일 또는 디렉토리를 컨테이너에 마운트해서 사용하는 것이다.
- 호스트의 절대경로(absolute path)에서 파일과 디렉토리를 참조 한다.
- 호스트에서 해당 경로로 들어가서 Docker container의 파일이나 디렉토리를 수정 및 삭제 등을 할 수 가 있다.
- 성능은 뛰어나지만 그림과 같이 특정 디렉터리 구조를 사용할 수 있는 호스트 시스템의 파일 시스템에 의존한다.
- 공식사이트에서도 이것 보다는 Volume을 권장한다.
3. Volumes
- Bind Mounts 와 달리 Docker에서 완전히 관리된다.
- 이로 인해 다음과 같은 장점이 있다.
- 볼륨은 바인드 마운트보다 백업 또는 마이그레이션이 더 쉽습니다.
- Docker CLI 명령 또는 Docker API를 사용하여 볼륨을 관리할 수 있습니다.
- 볼륨은 Linux 및 Windows 컨테이너 모두에서 작동합니다.
- 여러 컨테이너 간에 볼륨을 더욱 안전하게 공유할 수 있습니다.
- 볼륨 드라이버를 사용하면 원격 호스트 또는 클라우드 공급자에 볼륨을 저장하고, 볼륨 내용을 암호화하거나 다른 기능을 추가할 수 있습니다.
- 새 볼륨에는 컨테이너에 의해 콘텐츠가 미리 채워질 수 있습니다.
- Docker Desktop의 볼륨은 Mac 및 Windows 호스트의 바인드 마운트보다 성능이 훨씬 높습니다.
출처 및 참고