볼륨은 호스트 머신인 컴퓨터에 있는 폴더로써 도커 컨테이너 내부의 폴더와 매핑된다.
컨테이너가 종료 되더라도 볼륨은 제거되지 않고 지속되기 때문에 그 볼륨 안에 존재하는 데이터 또한 유지된다. 때문에 잃어선 안되는 데이터를 보관해야 하는 경우 볼륨을 사용하여 보호한다.
볼륨은 도커 외부인 호스트머신, 도커 컨테이너 내부 폴더 둘 다 접근이 가능하다.
호스트 머신 어딘가의 폴더에 볼륨이 생성되며 이는 도커가 관리한다. 또한 우리가 엑세스할 수 없다.
1. 익명 볼륨을 관리하는 것은 도커이다.
2. --rm 옵션으로 컨테이너를 실행한 경우 컨테이너 중지 시 컨테이너가 제거되며 익명 볼륨 또한 제거된다. 반대로 --rm 옵션 없이 실행할 경우 컨테이너는 중지 시 익명 볼륨은 제거 되지 않지만 컨테이너를 다시 만들어 실행할 경우 기존 익명 볼륨에 연결되는 것이 아닌 새로운 익명 볼륨을 만들어 연결시킨다. 때문에 사용하지 않는 익명 볼륨이 쌓이기 시작한다.
3. 하지만 명명된 볼륨의 경우 컨테이너가 종료되더라도 볼륨이 제거되지 않고 유지되며 컨테이너 실행 시 다시 명명된 볼륨에 연결시킬 수 있다.
-> 새 컨테이너를 시작하면 볼륨이 복구되고 폴더가 복구되어 해당 폴더에 저장된 데이터를 계속 사용할 수 있다.
때문에 명명된 볼륨은 영구적이어야 하는 데이터나 편집하거나 직접 볼 필요가 없는 중요한 데이터에 적합하다.
// 명명된 볼륨 생성 - 컨테이너 실행 명령어에 포함
docker run -d -p {local port}:{docker port} --rm --name {container name 지정} -v {volume name}:{volume path} {image name}:{tag}
'백엔드 개발' 카테고리의 다른 글
도커 컨테이너의 네트워크 통신 (0) | 2022.10.14 |
---|---|
Docker Bind Mounts (0) | 2022.10.11 |
이미지 vs 컨테이너 (0) | 2022.09.22 |
Docker 명령어 (0) | 2022.09.22 |
도커 실행, 종료, 이미지 레이어 (0) | 2022.09.19 |
댓글