728x90
파일시스템(File System)
- 모든 운영체제에는 파일 시스템을 가지고 있다.
- 사용자가 파일을 저장, 검색, 수정하는 데 필요한 모든 기능을 제공하며 컴퓨터 시스템에서 데이터를 저장하고 구성하는 방식을 정의한다.
Host, Docker Container 파일시스템 특징
Host
- 컨테이너 변경 여부에 상관없이 파일 시스템이 계속 유지 된다.
- Host 파일 시스템을 공유하면 보다 안전하고 효율적으로 프로그램을 만들 수 있다.
Docker Container
- 도커 이미지 배포시 새로운 디렉토리를 만들어서 사용한다.
- 컨테이너가 변경 될때마다 데이터가 초기화/삭제 되기 때문에 필요 없을때 삭제하고, 필요할 때 추가해서 사용할 수 있어서 간편하지만 지속적으로 필요한 파일(DB, 리소스)이 있다면 컨테이너에 올릴 때마다 필요한 파일들을 계속 추가 해줘야 하는 불편함이 있다.
- 컨테이너 내 저장된 데이터를 다른 컨테이너가 사용하기 어렵다.
데이터 공유 장단점
장점
- 컨테이너 내부에서 호스트 시스템의 파일 및 디렉토리를 읽고 쓸 수있게 된다.
- 여러 호스트 및 컨테이너 간의 데이터 공유하다.
- 파일 시스템을 복제할 필요가 없으므로 디스크 공간을 절약할 수 있다.
단점
- 컨테이너 내에서 파일 시스템에 직접 접근할 수 있는 보안 위험이 존재할 수 도 있다.
- 데이터 변경이 즉시 컨테이너에 반영되어 데이터의 일관성을 유지하기 어려울 수 있다.
- 호스트의 파일 시스템 경로에 의존하는 컨테이너 설정이 생길 수 있다.
Docker 데이터 관리

Volume
- 개념: 호스트 파일 시스템의 특정 디렉토리를 컨테이너 내의 특정 경로와 연결.
- 특징: 컨테이너가 종료되어도 데이터가 보존되며, 여러 컨테이너와 공유 가능.
- 용도: 데이터베이스 파일, 로그 파일 저장.
$ docker run -v [호스트 경로]:[컨테이너 내 경로] [이미지이름]
Bind Mount
- 개념: 호스트 파일 시스템의 특정 디렉토리를 컨테이너 내의 특정 경로와 직접 연결.
- 특징: 호스트와 컨테이너 간 파일 및 디렉토리가 동기화되며, 데이터 공유가 간단하고 유연함.
- 용도: 호스트와 컨테이너 간 파일 및 디렉토리 동기화.
$ docker run -v [호스트 디렉토리]:[컨테이너 내 경로] [이미지이름]
tmpfs
- 개념: 컨테이너의 임시 파일 시스템을 호스트의 RAM에 마운트.
- 특징: 데이터는 RAM에만 저장되며, 컨테이너 종료 시 데이터 손실. 일시적인 데이터 저장에 유용.
- 용도: 웹 서버 로그 파일, 캐시 파일 저장
$ docker run --tmpfs [컨테이너 내 경로] [이미지이름]
컨테이너 실행시 데이터 연결 방법
- 볼륨 생성 후 마운트
- 장점: docker volume ls 명령어로 볼륨 조회 가능, 볼륨명 명시 가능.
- 단점: 볼륨 관리 및 보안에 대한 추가 작업 필요, 용량 관리 필요.
- 명령어:
- # 볼륨 생성 docker volume create [볼륨이름] # 볼륨을 컨테이너에 마운트하여 실행 docker run -v [볼륨이름]:[컨테이너 내 경로] [이미지이름]
- 호스트 디렉토리와 컨테이너 경로를 직접 마운트
- 장점: 호스트 디스크를 명시하여 원하는 경로에 마운트 가능.
- 단점: docker volume ls로 조회되지 않음, 볼륨명 명시 불가.
- 명령어:
- # 호스트 디렉토리 미지정 시 (자동 임시 디렉토리 생성) docker run -v [컨테이너 내 경로] [이미지이름] # 호스트 디렉토리 명시 시 docker run -v [호스트 디렉토리]:[컨테이너 내 경로] [이미지이름]
- --volumes-from 옵션을 사용하여 볼륨 공유
- 장점: 동일 데이터를 여러 컨테이너에서 공유 가능, 볼륨 공유가 간편.
- 단점: 강력한 의존성으로 변경 시 영향이 있을 수 있음.
- 명령어:
- # 첫 번째 컨테이너 실행 docker run -v $HOME/host-volume1:/container-volume1 [이미지이름1] # 두 번째 컨테이너에서 첫 번째 컨테이너의 볼륨 공유 docker run --volumes-from=[이미지이름1] [이미지이름2]
728x90
'Docker' 카테고리의 다른 글
Node.js Docker image (1) | 2025.04.11 |
---|---|
Docker 명령어 정리 (0) | 2025.04.11 |
Docker 설치 방법 & Dockerfile 구성 요소 설명 (0) | 2025.04.11 |
WSL에서 개발 환경 구축하기 | Node.js, Git, VSCode (1) | 2024.09.26 |
WSL을 사용하여 Windows에 Linux를 설치하기 (5) | 2024.08.30 |