바인드 마운트 및 tmpfs 마운트
호스트 파일에 접근하는 바인드 마운트와 임시 데이터를 저장하는 tmpfs 마운트에 대해 학습합니다.
바인드 마운트 및 tmpfs 마운트은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
볼륨을 넘어선 데이터 저장
이전 레슨에서는 데이터를 지속적으로 저장하기 위한 Docker 볼륨을 배웠습니다. 그렇다면 호스트 컴퓨터의 파일을 직접 공유하거나, 계속 보존할 필요가 없는 임시 데이터를 저장하려면 어떻게 해야 할까요?
이 레슨에서는 데이터를 관리하는 두 가지 방법인 바인드 마운트와 tmpfs 마운트를 소개합니다. 두 방법은 다양한 사용 목적에 맞는 유연성을 제공합니다.

바인드 마운트란?
바인드 마운트를 사용하면 호스트 컴퓨터의 파일이나 디렉터리를 컨테이너에 마운트할 수 있습니다. 이렇게 하면 직접 연결되므로 어느 한쪽에서 변경한 내용이 다른 쪽에도 즉시 반영됩니다.
- 호스트 경로: 컴퓨터에서 해당 위치를 나타냅니다.
- 컨테이너 경로: 컨테이너 내부에서 해당 위치를 나타냅니다.
- 개발, 구성 공유 또는 호스트 파일 액세스에 적합합니다.
바인드 마운트 사용해 보기
바인드 마운트가 실제로 어떻게 작동하는지 살펴보겠습니다. 이 명령은 현재 디렉터리를 컨테이너의 /app 디렉터리에 마운트합니다. Linux/macOS에서는 현재 디렉터리를 $(pwd)로 나타내고, Windows CMD에서는 %cd%로 나타냅니다.
참고: 실행하기 전에 현재 디렉터리에 hello.txt라는 파일을 만들고 "Hello from host!"와 같은 텍스트를 입력하세요.
docker run --rm -it \
-v "$(pwd):/app" \
alpine:latest sh -c "ls /app && cat /app/hello.txt"읽기 전용 바인드 마운트
호스트의 데이터를 공유하되 컨테이너가 변경하지 못하게 해야 할 때가 있습니다. 이럴 때 읽기 전용 바인드 마운트가 유용합니다.
마운트 경로 끝에 :ro를 지정하거나 readonly와 함께 --mount 플래그를 사용하면 됩니다.
docker run --rm -it \
-v "$(pwd):/app:ro" \
alpine:latest sh -c "touch /app/new_file.txt || echo 'Permission denied!'"읽기 전용 출력 이해하기
이전 명령을 실행했을 때 "Permission denied!"라는 메시지가 표시되었을 것입니다. 이는 /app 디렉터리가 읽기 전용으로 마운트되어 컨테이너가 새 파일을 만들 수 없었다는 뜻입니다.
이 기능은 컨테이너가 실수로 또는 악의적으로 호스트 파일을 변경하지 못하게 보호하는 훌륭한 보안 기능입니다.
tmpfs 마운트란?
tmpfs 마운트는 호스트의 메모리(RAM)에만 저장되는 임시 파일 시스템입니다. 따라서 tmpfs 마운트에 기록한 데이터는 지속되지 않습니다.
- 컨테이너가 중지되면 데이터가 사라집니다.
- 디스크 기반 저장소보다 입출력 속도가 빠릅니다.
- 민감한 데이터나 임시 파일에 적합합니다.
tmpfs 마운트 사용해 보기
tmpfs 마운트가 있는 컨테이너를 만들어 보겠습니다. 여기에 파일을 작성한 다음 컨테이너를 종료합니다. 새 컨테이너를 실행하면 해당 파일은 사라집니다.
--tmpfs 플래그는 컨테이너 내부의 마운트 지점을 지정합니다.
docker run --rm -it \
--tmpfs /app/temp_data \
alpine:latest sh -c "echo 'Ephemeral data' > /app/temp_data/my_temp_file.txt && ls /app/temp_data"tmpfs의 임시 특성 확인하기
마지막 명령을 실행한 후 my_temp_file.txt가 목록에 표시되었을 것입니다. 이제 동일한 tmpfs 마운트 설정으로 새 컨테이너를 시작하는 다음 명령을 실행하세요.
my_temp_file.txt가 더 이상 없다는 것을 확인할 수 있습니다. 이는 tmpfs 데이터가 실제로 임시 데이터이며 컨테이너의 수명 주기에 종속된다는 뜻입니다.
docker run --rm -it \
--tmpfs /app/temp_data \
alpine:latest ls /app/temp_data바인드 마운트와 tmpfs 마운트 비교
각각 언제 사용해야 할까요?
- 바인드 마운트: 호스트 파일(예: 구성 파일, 소스 코드)을 컨테이너와 공유할 때 사용합니다. 데이터가 유지되며 호스트에 직접 액세스할 수 있습니다.
- tmpfs 마운트: 높은 성능이 필요하거나 컨테이너를 다시 시작해도 남아 있으면 안 되는 임시 비지속 데이터를 사용할 때 적합합니다(예: 캐시, 민감한 실행 중 데이터).
두 방법 모두 Docker 볼륨을 보완하며, 다양한 데이터 관리 방식을 제공합니다.
빠른 확인: 마운트 유형
다음 설명 중 바인드 마운트와 tmpfs 마운트에 대해 올바른 것은 무엇일까요?
복습: 데이터 관리 도구
훌륭합니다! Docker 데이터 관리 도구를 더욱 다양하게 익혔습니다.
- 바인드 마운트는 호스트의 파일/디렉터리를 컨테이너에 연결하므로 개발과 구성 공유에 적합합니다.
- tmpfs 마운트는 메모리를 사용하는 임시 저장소를 제공하므로 비지속 데이터나 민감한 데이터에 알맞습니다.
이러한 선택지를 이해하면 컨테이너화된 애플리케이션에 적합한 저장소 솔루션을 선택할 수 있습니다.
자주 묻는 질문
“바인드 마운트 및 tmpfs 마운트” 강의는 무료인가요?
네 — “바인드 마운트 및 tmpfs 마운트” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
“바인드 마운트 및 tmpfs 마운트”에서 뭘 배우나요?
호스트 파일에 접근하는 바인드 마운트와 임시 데이터를 저장하는 tmpfs 마운트에 대해 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“바인드 마운트 및 tmpfs 마운트” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 컨테이너 네트워킹 기초
- 영속성을 위한 Docker 볼륨
- 바인드 마운트 및 tmpfs 마운트
- 사용자 정의 브리지 네트워크와 서비스 검색