[DOCKER] 컨테이너 볼륨

2021. 10. 28. 15:57·DOCKER
728x90

컨테이너 볼륨

컨테이너를 삭제하면 컨테이너 계층 (Writable Layer)의 데이터가 모두 삭제 되기 때문에 컨테이너 데이터의 영속성을 유지하기 위해서 볼륨을 활용

  • 컨테이너 이미지는 readonly 속성임, 컨테이너에 추가되는 데이터들은 별도의 RW 레이어에 저장되며 해당 방식을 Copy-on-Write 방식이라 하며, 파일을 효율적으로 공유하고 복사하는 방법임
  • 컨테이너의 파일 시스템을 관리하기 위해서는 리눅스 커널이 지원하는 Storage 드라이버를 통해 Union File System을 이용해서 RO, RW 레이어가 하나인것 처럼 동작해줌
  • 볼륨을 활용하지 않은 컨테이너가 동작하지 않으면, 데이터가 영구적으로 유지 되지 않기 때문에, 다른 프로세스나 컨테이너가 해당 데이터를 필요로 하는 경우 사용할 수 없음

데이터를 보존하는 방법

Docker HOST에서 저장소 공간을 만들어서 컨테이너가 만들어주는 데이터를 디스크에 보존하도록 함, Volume 옵션을 사용하여 실제호스트 디렉토리에 쌓이게하는 것인데 이것을 볼륨 마운트라고 함, 컨테이너가 삭제되도 데이터가 영구적으로 보존할 수 있음

Volume 옵션 사용

-v <host path>:<container mount path>
-v <host path>:<container mount path>:<read write mode>
-v <container mount path>
  • docker run -d -v /dbdata:/var/lib/mysql -e MYSQL..PASSWORD=pass mysql:latest (호스트의 dbdata에 기록되게 끔 설정, 컨테이너가 도커호스트의 디렉토리를 수정하는건 매우 안좋음 보안적인 이슈 예시라 참고, ro옵션을 생략하면 rw옵션임)
  • docker run -d -v /webdata:/var/www/html:ro httpd:latest (실제로 호스트의 webdata가 readonly로 서비스가 되게끔 설정)
  • docker run -d -v /var/lib/mysql -e MYSQL..PASSWORD=pass mysql:latest (임의 디렉토리를 만들어서 자동 마운트가 되게끔 설정)

컨테이너끼리 데이터 공유하는 방법

  • 볼륨 옵션으로 디렉토리에 마운트한 데이터는 새로운 컨테이너에서 공유가 가능함 
  • -v 옵션을 사용해서 공유
저작자표시

'DOCKER' 카테고리의 다른 글

[DOCKER] DOCKERFILE 명령어 정리  (0) 2022.05.11
[DOCKER] 도커컴포즈  (0) 2021.10.28
[DOCKER] 컨테이너 관리  (0) 2021.10.28
[DOCKER] 계정 관리자 권한 부여  (0) 2021.10.26
[DOCKER] 삭제방법  (0) 2021.10.26
'DOCKER' 카테고리의 다른 글
  • [DOCKER] DOCKERFILE 명령어 정리
  • [DOCKER] 도커컴포즈
  • [DOCKER] 컨테이너 관리
  • [DOCKER] 계정 관리자 권한 부여
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    AWS
    이펙티브코틀린
    Elk
    Spring
    클린코드
    코틀린
    cleancode
    JPA
    splunk
    go
    SQL
    IntelliJ
    docker
    ElasticSearch
    이펙티브 코틀린
    Kafka
    자바
    엘라스틱서치
    java
    프로그래머스
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[DOCKER] 컨테이너 볼륨
상단으로

티스토리툴바