일일 정리

Data와 Volume

mysecurity 2025. 5. 26. 12:04

목차

1. Data와 Volume

1-1 Data

1-2 Volume

 

 

1. Data와 Volume

1-1 Data

● Container Data : UpperDir  

컨테이너 생성 시 기존 내용들은 read-only이므로 수정되지 않는다. 컨테이너에서 작업하여 수정된 내용은 어퍼디렉토리에 저장되며, 컨테이너 삭제 시 함께 삭제된다.

- 기존 index.html 파일은 read-only이므로 실제로 수정된 것이 아니라 덮어씌워진 것이다.

 

 

- 실제 수정 내용은 UpperDir 경로에 저장되며, 해당 컨테이너 삭제 시 함께 삭제된다.

- UpperDir 경로에서 직접 수정하지 않는다.

 

** 컨테이너 생성 시 기존 내용은 함구적인 것을 이용하여, 컨테이너 생성 후 서비스 가능한 상태로 설정 -> 이를 이미지로 저장하여 다음부터 해당 서비스를 운영할 경우 해당 이미지를 가져다 사용한다.

 

 

 Container Data : 파일 복사

호스트 파일이나 컨테이너 파일을 서로 복사 가능하다.

docker [contaner] cp container_name:file  host_file
docker [contaner] cp host_file  container_name:file

- 호스트 파일 index.html 생성 후 컨테이너 파일로 복사하여 이용 가능하다.

 

 

 Container Data : 파일 확인

변경된 파일을 확인 한다.

docker [contaner] diff container_name

A 파일 추가
D 파일 삭제
C 파일 수정

 

 

1-2 Volume

볼륨은 컨테이너 내부 디렉토리와 외부 리소스를 연결하여 휘발성인 컨테이너 데이터를 함구적으로 사용할 수 있도록 한다.

docker run -v [외부 리소스]:[내부 디렉토리] [option] ...

 

※ 외부 리소스 종류

volume name 볼륨 생성 후 해당 볼륨에 컨테이너 디렉토리를 연결한다.
host dir(bind mount) 호스트 디렉토리에 컨테이너 디렉토리를 연결한다.
temp dir(tempfs mount) 메모리 영역에 컨테이너 디렉토리를 연결한다. (휘발성)

 

 

※ Volume 종류

volume type - 여러 컨테이너에서 안전하게 공유 가능하다.
- 미리 데이터를 준비하고 연결된 컨테이너에서 바로 사용 가능하다.
bind mount type - 파일 퍼미션에 주의한다.
tmpfs type - 속도가 빠르다.
- 휘발성이므로 임시 데이터 저장에 이용한다.

 

 

volume type 

docker volume [create | ls | inspect | rm | prune] volume_name

: 볼륨 생성, 조회, 삭제가 가능하다.

 

- 컨테이너 생성 시 자동 생성되는 볼륨은 prune으로 정리한다.

 

 

- 마운트 지점이 생긴 것을 확인한다. 해당 볼륨에서 작업 시 실제로는 마운트 지점에서 작업이 일어난다.

 

docker run -v volume:container_path ...

: 볼륨을 컨테이너의 경로에 연결(마운트)한다.

: 컨테이너 경로나 볼륨이 없으면 자동 생성된다.

 

- 기존에 없던 myvol2 볼륨은 자동 생성된다.

 

 

 volume type - 공유

볼륨은 컨테이너 간 데이터 공유에 이용된다.

- 서로 다른 컨테이너에 같은 볼륨을 연결하여 볼륨을 공유할 수 있다.

 

 

 volume type - read only

docker run -v volume:container_path:[rw | ro]

: 볼륨을 rw 혹은 ro로 설정 가능하다. (기본 값: rw)

: 웹페이지와 같은 서비스는 주로 ro로 설정하며 설정용 컨테이너를 따로 띄워 사용한다.

 

bind mount type

docker run -v [host dir]:[container dir]:[rw | ro] ...

: 호스트 컴퓨터와 컨테이너 디렉토리를 연결한다.

: 볼륨을 rw 혹은 ro로 설정 가능하다. (기본 값: rw)

 

- 변경된 내용은 컨테이너 종료 후에도 유지된다.

 

- 마운트 정보를 확인할 수 있다.

 

 

tmpfs type

docker run --tmpfs [container dir:[rw | ro]] ...

: 메모리에 마운트되는 디렉토리를 사용한다.

 

- 임시 데이터 저장 용도로 사용되므로 위와 같이 ro로 설정할 경우 의미가 없다. 사실상 반드시 rw여야 한다.

'일일 정리' 카테고리의 다른 글

Dockerfile  (0) 2025.06.02
Docker image  (0) 2025.05.28
Docker Network  (0) 2025.05.23
Container & Process  (0) 2025.05.22
Docker container command  (2) 2025.05.21