목차
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 |