본문 바로가기
DevOps/Docker

Docker Volume

by Mecodata 2023. 9. 12.

정의

- 호스트 머신의 폴더 (로컬 컴퓨터 폴더)

- 컨테이너 내부 폴더와 컨테이너 외부 폴더를 서로 연결해주는 역할

종류

익명 볼륨(Anonymous Volumes)

- 도커 엔진 내부에 익명으로 새로운 볼륨을 생성하여 해당 볼륨과 지정한 컨테이너 디렉터리를 마운트

컨테이너가 존재하는 동안에만 존재

- 컨테이너 실행 시 -v 컨테이너 경로 옵션을 적용하면 생성

docker-compose.yml에서는 volumes에 컨테이너 디렉터리 경로만 입력

- type = volume

명명 볼륨(Named Volumes)

- 도커 엔진 내부에 지정한 볼륨명으로 새로운 볼륨을 생성하여 해당 볼륨과 지정한 컨테이너 디렉터리를 마운트

- 컨테이너가 종료된 후에도 유지

- 컨테이너 실행 시 -v [볼륨명:컨테이너 디렉터리 경로] 옵션을 적용하면 생성

- docker-compose.yml에서는 volumes에 [볼륨명:컨테이너 디렉터리 경로] 형식으로 입력

- type = volume

바인드 마운트(Bind Mount)

- 지정한 로컬 디렉터리와 컨테이너 디렉터리를 바인드 마운트

- 컨테이너가 종료된 후에도 유지

- 컨테이너 실행 시 -v [로컬의 디렉터리 경로:컨테이너 디렉터리 경로] 옵션을 적용하면 생성

- docker-compose.yml에서는 volumes에 [로컬의 디렉터리 경로:컨테이너 디렉터리 경로] 형식으로 입력

- type = bind

※ docker volume ls 명령 시 조회되는 것은 익명 볼륨과 명명 볼륨이고, 바인드 마운트는 volume으로 조회 X

마운트(Mount) = 물리적인 장치를 특정 디렉터리에 연결 시켜주는 것

docker-compose.yml 예시

version: '3'
services:
  springboot:
    build: 
      context: ./springboot/test 
    container_name: spring_boot
    ports:
      - "8080:8080"
    volumes:
      - /var/app # anonymous volume
      - test2:/usr/app # named volume
      - ../springboot/test:/app # bind mount
    restart: always
volumes:
   test2:

'DevOps > Docker' 카테고리의 다른 글

docker-compose  (0) 2023.09.05
Dockerfile 기본 문법  (0) 2023.02.03
Docker 기본 명령어  (0) 2022.12.21

댓글