개요 - Docker mount란

도커 컨테이너는 호스트와 별도로 파일 시스템을 가지고 있습니다. 이 파일 시스템은 컨테이너가 생성될 때 생성되며, 컨테이너가 종료되면 함께 삭제됩니다. 이 때문에 컨테이너가 종료되면 컨테이너 내부에 저장된 데이터는 모두 사라지게 됩니다. 이러한 문제를 해결하기 위해 도커는 컨테이너 내부의 파일 시스템을 호스트의 파일 시스템과 연결하는 방법을 제공합니다. 이를 도커 mount라고 합니다.

도커 mount는 크게 두 가지 방법으로 구분됩니다. 하나는 볼륨(volume)을 사용하는 방법이고, 다른 하나는 바인드 마운트(bind mount)를 사용하는 방법입니다. 볼륨과 바인드 마운트는 각각 장단점이 있으며, 상황에 따라 적절한 방법을 선택해야 합니다.

docker mount


볼륨(volume)

볼륨은 Docker가 관리하는 호스트 파일 시스템의 일부에 저장됩니다. Docker가 아닌 프로세스는 파일 시스템의 이 부분을 수정해서는 안되며, Docker에서 데이터를 유지하는 가장 좋은 방법이다.

볼륨은 Docker에 의해 생성되고 관리됩니다. 명령을 사용하여 명시적으로 볼륨을 생성할 수 있습니다. 또는 Docker는 컨테이너나 서비스 생성 중에 볼륨을 생성할 수 있습니다.

docker volume create my-vol

특정 볼륨을 여러 컨테이너에 동시에 마운트하는 것도 가능합니다. 실행 중인 컨테이너가 볼륨을 사용하지 않더라도 Docker에서 계속 사용할 수 있으며, 자동으로 제거되지 않고 다음 명령을 사용하여 수동으로 제거해야 합니다.

docker volume prune my-vol


바인드 마운트(bind mount)

바인드 마운트는 호스트의 디렉토리를 컨테이너의 디렉토리에 마운트하는 방식입니다. 바인드 마운트는 볼륨에 비해 기능이 제한되어 있지만 파일 또는 디렉터리는 호스트 시스템의 전체 경로로 참조되며 파일이나 디렉터리가 Docker 호스트에 이미 존재할 필요는 없습니다. 바인드 마운트는 빠르지만 특정 디렉토리 구조를 사용할 수 있는 호스트의 파일 시스템에 의존하며 공식 문서에서는 볼륨을 사용하는 것을 권장합니다.


볼륨(volume) vs 바인드 마운트(bind mount)

볼륨(volume) 바인드 마운트(bind mount)
호스트의 파일 시스템의 일부를 사용 호스트의 디렉토리를 컨테이너의 디렉토리에 마운트
Docker가 관리 Docker가 관리하지 않음
볼륨을 여러 컨테이너에 동시에 마운트 가능 특정 디렉토리 구조를 사용할 수 있는 호스트의 파일 시스템에 의존

tmpfs 마운트

tmpfs는 호스트의 메모리에 저장되는 가상 파일 시스템입니다. 컨테이너 수명 동안 컨테이너에서 비지속적 상태 또는 중요한 정보, 예를 들면 secrets, keys, tokens 등을 저장하는 데 사용됩니다. tmpfs는 컨테이너가 종료되면 삭제되므로 컨테이너가 종료되면 데이터가 사라지게 됩니다.


출처


2024-05-07
다음 글: 인체공학을 염두에 둔 내 pc용 책상 세팅(1) → 카테고리로 돌아가기 ↩