1. 개요
<Docker 가상 환경 구축 입문>의 <Chapter 7-1. Docker 파일 관리 개요>를 읽고 정리한 내용으로,
이번 문서의 주된 내용은 Docker의 마운트 타입 종류에 대한 설명입니다.
2. Docker의 마운트 기능
- 컨테이너 기동 후 작성, 수정된 파일은 컨테이너 레이어 위에 존재하므로 컨테이너가 삭제되는 시점에 함께 사라지게 됨
- Docker의 마운트 기능을 사용하여 컨테이너를 삭제한 후에도 데이터를 보존할 수 있음
- 해당 기능을 사용하여 컨테이너 외부 영역에 파일을 저장하면, 컨테이너 간 데이터 공유를 할 수 있음
- Docker의 마운트 타입은 volume, Bind Mount, tmpfs가 있음
3. volume
- Docker 호스트 상에 특정 영역을 생성하여, 해당 영역을 컨테이너에 마운트하는 형식
- 생성된 volume은 이름을 정해서 관리할 수 있으며 여러 대의 컨테이너에 동일한 볼륨을 마운트하여 공통 파일을 읽거나 쓸 수 있음
- volume은 컨테이너가 삭제되어도 함께 삭제되지 않고, 명시적으로 삭제할 때까지는 Docker 호스트 상에 보존됨
- volume에 해당하는 영역을 Docker 호스트 상에서 직접 편집하는 것은 권장하지 않으며 컨테이너 측에서 해당 영역을 사용하는 방식을 권장
- 컨테이너에서 생성하는 파일 중 영구적으로 보관하고자 하는 파일(중요 로그 파일 등)을 저장할 경우에 사용
4. Bind Mount
- volume과 달리 Docker 호스트 상에서 유저가 관리하고 있는 파일이나 디렉토리를 컨테이너에 마운트하는 형식
- volume과 마찬가지로 동일한 파일 혹은 디렉토리를 여러 대의 컨테이너에 마운트할 수 있음
- 마운트할 파일, 디렉토리 등을 사전에 준비한 후 해당 경로를 지정하여 컨테이너에 마운트하는 방식
-
Docker 호스트 상의 디렉토리나 파일을 컨테이너에서 공유하여 사용하고자 하는 경우
예시) PC 상에서 소스 코드를 수정하고 컨테이너에서 애플리케이션 동작 확인을 하는 경우
5. tmpfs
- Docker 호스트의 메모리 영역을 컨테이너에 마운트하여 사용
- Docker 호스트가 shutdown되거나 컨테이너가 정지했을 때는 데이터가 삭제됨
- 영구적으로 유지되어야 하는 데이터보다는 일시적으로 보관할 필요가 있는 데이터를 사용할 때 유리
- 위의 두개 방식에 비해 사용빈도는 적은 편이지만 캐시 혹은 OTP 등을 일시적으로 보관할 때 사용