Recent Posts
Recent Comments
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
관리 메뉴

ㅇ.ㅇ

[Docker] Docker Volume (도커 강의 정리 #3) 본문

Docker

[Docker] Docker Volume (도커 강의 정리 #3)

yun_ 2025. 4. 23. 13:08
반응형

 


 

도커 볼륨 어떨 때 왜 사용?

  • 컨테이너 삭제하면 내부에 있는 데이터도 같이 삭제된다.
  • 컨테이너 내부에 저장된 데이터가 컨테이너와 함께 삭제되지 않도록 하려면? ‘도커 볼륨’을 활용해 보자!

 

도커 볼륨 (Docker Volume) 이란?

  • 도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법.
  • 컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유해서 사용한다.

비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)

 

도커 볼륨 사용 방법

$ 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에 원래 있던 내용은 무시되고, 호스트의 파일이 그대로 컨테이너에 연결된다. 
  • 호스트에 디렉토리 이미 있음 → 컨테이너 내용은 무시됨

비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)

 

#2  [호스트의 디렉토리 절대경로]에 디렉토리가 존재하지 않을 경우

  • [호스트의 디렉토리 절대경로]에 디렉토리가 존재하지 않을 경우, 호스트의 디렉토리 절대 경로에 디렉토리를 새로 만들고 컨테이너 디렉토리에 있는 파일들을 호스트의 디렉토리로 복사해 온다.
  • 위와 동일하게 마운트 했는데 /my/host/dir이 존재하지 않으면 Docker가 자동으로 /my/host/dir을 만들고, 컨테이너 안 /var/lib/mysql에 있던 초기 파일을 호스트 디렉토리로 복사해온다. 이후부터는 이 복사된 파일을 컨테이너와 공유하게 된다.
  • 호스트에 디렉토리 없음 → 컨테이너 내용이 복사됨

비전공자도 이해할 수 있는 Docker 입문/실전 (박재성)

 

도커 볼륨 설정 경로는?

  • 볼륨 설정 경로는 도커허브의 해당 오피셜 이미지의 설명을 보면 나와있다.
  • 아래 예시는 mysql의 도커허브 페이지.

 

반응형