[Docker] 0. Volume

Jae Gyeong Lee·2024년 6월 24일

docker -v volunme

  • 기본적으로 docker 컨테이너에서 만들어진 data는 컨테이너가 삭제되면 같이 삭제됨.

  • -v 옵션을 통해 {호스트 경로}와 {컨테이너 경로}를 이어두면, 컨테이너에서 작업했던 파일들이 {호스트 경로}에 저장되어, 컨테이너를 삭제해도 데이터는 유지할 수 있음.

  • volume mount (-v)

$docker run -v {호스트 경로}:{컨테이너 경로} {이미지:태그}

-v C:\Users\Desktop\docker_v_test:/home/work

(1) 호스트의 C:\Users\Desktop\docker_v_test 디렉토리와
(2) 컨테이너의 /home/work 디렉토리를 연결(공유)하겠다.

$docker run -v C:\Users\Desktop\docker_v_test:/home/work {이미지:태그}

예시

# 기존
docker run -d -p 1234:1234 \
  -e MYSQL_ALLOW_EMPTY_PASSWORD=true \
  --network=app-network \
  --name mysql \
  mariadb:latest
# -v 옵션 추가
docker run -d -p 1234:1234 \
  -e MYSQL_ALLOW_EMPTY_PASSWORD=true \
  --network=app-network \
  --name mysql \
  -v /my/own/dir:/var/lib/mysql \
  mariadb:latest
  • /my/own/datadir 디렉토리에 파일을 저장해 두었기 때문에 이 mysql 컨테이너를 지우고(rm) 다시 실행하더라도, 앞서 만들어 둔 data base는 여전히 살아 있음.
    컨테이너 삭제(rm) 후 -v 옵션으로 디렉토리에 저장한 정보를 가져오면서, run을 하면, 삭제 이전에 디렉토리에 저장해둔 데이터를 가져옴.
profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글