ㅇ.ㅇ
[Docker] Docker Volume (도커 강의 정리 #3) 본문
반응형
- 비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)
- #1. Docker 기본 개념
- #2. Docker 기본 CLI
- #3. Docker Volume (해당 글)
도커 볼륨 어떨 때 왜 사용?
- 컨테이너 삭제하면 내부에 있는 데이터도 같이 삭제된다.
- 컨테이너 내부에 저장된 데이터가 컨테이너와 함께 삭제되지 않도록 하려면? ‘도커 볼륨’을 활용해 보자!
도커 볼륨 (Docker Volume) 이란?
- 도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법.
- 컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유해서 사용한다.
도커 볼륨 사용 방법
$ docker run -v [호스트 디렉토리 절대 경로]:[컨테이너 디렉토리 절대 경로] [이미지명]:[태그명]
# 예시
$ docker run -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 -v /docker/docker-mysql/mysql_data:/var/lib/mysql mysql
도커 볼륨 특징
#1 [호스트의 디렉토리 절대 경로]에 디렉토리가 이미 존재할 경우
- 호스트의 디렉토리 절대 경로에 디렉토리가 이미 존재할 경우, 호스트의 디렉토리가 컨테이너 디렉토리를 덮어씌운다.
- Docker run 명령어에서 -v /my/host/dir:/var/lib/mysql 이렇게 마운트했을 때, /my/host/dir이 이미 존재하고 파일이 있으면 그 안에 있는 호스트 파일이 우선이 된다. 즉, 컨테이너 내부 /var/lib/mysql에 원래 있던 내용은 무시되고, 호스트의 파일이 그대로 컨테이너에 연결된다.
- 호스트에 디렉토리 이미 있음 → 컨테이너 내용은 무시됨
#2 [호스트의 디렉토리 절대경로]에 디렉토리가 존재하지 않을 경우
- [호스트의 디렉토리 절대경로]에 디렉토리가 존재하지 않을 경우, 호스트의 디렉토리 절대 경로에 디렉토리를 새로 만들고 컨테이너 디렉토리에 있는 파일들을 호스트의 디렉토리로 복사해 온다.
- 위와 동일하게 마운트 했는데 /my/host/dir이 존재하지 않으면 Docker가 자동으로 /my/host/dir을 만들고, 컨테이너 안 /var/lib/mysql에 있던 초기 파일을 호스트 디렉토리로 복사해온다. 이후부터는 이 복사된 파일을 컨테이너와 공유하게 된다.
- 호스트에 디렉토리 없음 → 컨테이너 내용이 복사됨
도커 볼륨 설정 경로는?
- 볼륨 설정 경로는 도커허브의 해당 오피셜 이미지의 설명을 보면 나와있다.
- 아래 예시는 mysql의 도커허브 페이지.
반응형
'Docker' 카테고리의 다른 글
[Docker] Docker 기본 CLI (도커 강의 정리 #2) (0) | 2025.04.14 |
---|---|
[Docker] Docker 기본 개념 (도커 강의 정리 #1) (0) | 2025.04.08 |
[Docker] AccessDeniedException (1) | 2025.02.06 |
[Docker] lazydocker 설치 방법 (0) | 2024.11.17 |
[Docker] 도커 시스템 공간 확보 (0) | 2024.11.15 |