Container & K8S/Docker

[Docker] 도커 볼륨과 볼륨 명령어

dhyuck 2021. 9. 25. 01:51
반응형

컨테이너는 휘발성 프로세스로 컨테이너가 삭제된다면, 컨테이너 내부의 데이터도 함께 사라지게 됩니다. 그렇기 때문에 데이터의 영속성을 확보하기 위해서는 컨테이너 외부에 데이터를 저장해야합니다.

데이터를 컨테이너 외부(호스트)에 저장하는 옵션은 Volumes, Bind Mounts, tmpfs 3가지가 있습니다.

  • Volumes은 Docker가 관리하는 파일시스템(/var/lib/docker/volumes/)에 데이터를 저장합니다.

    Non-Docker 프로세스는 해당 파일시스템을 수정해서는 안됩니다. (도커에서 데이터 영속성을 확보하는 가장 좋은 방법입니다.)

  • Bind Mounts 는 호스트의 파일 시스템 어디에나 데이터를 저장 할 수 있습니다.

    이는 중요한 시스템 파일이나 디렉터리에도 사용 할 수 있고, Non-Docker 프로세스에 의해서 해당 파일시스템이 수정도 가능하다는 의미입니다. (도커 초기에 사용하던 방법입니다)

  • tmpfs는 Linux에서만 사용 가능하며 호스트의 메모리에만 저장되고 파일시스템에는 저장 할 수 없습니다.


도커 볼륨 명령어

  • 도커 볼륨 생성 (docker volume create)

      docker volume create [OPTIONS] [VOLUME]
      # Create a volume
  • 도커 볼륨 조회(docker volume ls)

      docker volume ls [OPTIONS]
      # List volumes 
  • 도커 볼륨 삭제 (docker volume rm)

      docker volume rm [OPTIONS] VOLUME [VOLUME...]
      # Remove one or more volumes.
      # You cannot remove a volume that is in use by a container.
  • 사용하지 않는 모든 로컬 볼륨 삭제 (docker volume prune)

      docker volume prune [OPTIONS]
      # Remove all unused local volumes
  • 도커 볼륨 정보 확인 (docker volume inspect)

      docker volume inspect [OPTIONS] VOLUME [VOLUME...]
      # Display detailed information on one or more volumes

  • 컨테이너에 볼륨을 마운트 할 때는 3가지 flag를 사용 할 수 있습니다. -v, —volume, —mount

      # 이미지 : nginx:latest / 이름 : devtest
      # -d : 백그라운드로 구동 / "myvol2" 볼륨을 "/app"에 마운트
      docker run -d --name devtest --mount source=myvol2, target=/app nginx:latest
      docker run -d --name devtest -v myvol2:/app nginx:latest

반응형