Docker Volumes
도커의 볼륨이란 호스트 머신의 폴더이다. 즉 컨테이너의 내부의 폴더를 호스트 머신 상의 컨테이너 외부 폴더에 연결하는 역활을 하는 것을 의미한다.
Docker Volumes 을 사용하는 이유
일반적으로 도커 이미지를 만들고, 컨테이너로 실행시키면 다음과 같이 도커가 실행이 된다. 만약 컨테이너에서 파일을 만들고 그 파일을 다룬다고 가정 했을 때, 모든 행위는 컨테이너에서 읽고, 써지기 때문에 컨테이너 외부에서는 해당 파일을 다루기가 힘들다. 따라서 해당 파일을 외부 폴더(로컬)에 연결하여 사용하기 위해서 도커의 볼륨을 이용한다.
📢 간단하게 말하자면, 컨테이너와 로컬간의 공통적인 참조 영역을 만들어주는 역활
일반적으로 컨테이너가 종료되면 컨테이너에서 만들어진 파일들이 삭제가 되지만, 볼륨으로 관리하게 된다면 컨테이너가 종료되어도 데이터가 계속 존재하도록 만들 수 있다.
Docker Volumes 사용 방법
도커 볼륨을 마운트하는 방법은 다음과 같다.
# 도커에 볼륨 생성
docker volume create our-vol
# -v 와 볼륨:컨테이너 경로를 적어주어 마운트 하기
docker run -v our-vol:/app --name two busybox ls /app
Docker 바인드 마운트
호스트 파일 시스템의 특정경로를 컨테이너로 바로 마운트 하는 방법을 의미한다.
사용하는 방법은 아래와 같다.
docker run docker run -d --rm --name test2 -p 3000:80 -v 절대경로:컨테이너경로 test
만약에 해당 마운트를 읽기 전용으로 바꾸고 싶다면 다음과 같이 ro 을 사용한다.
docker run docker run -d --rm --name test2 -p 3000:80 -v 절대경로:컨테이너경로:ro test
📢 도커에서는 내부를 먼저 확인하고 외부 확인을 한다. 예를 들어서 app/test.txt 라는 파일이 볼륨에 있다면 해당 파일을 가져오고 없다면 마운트 된 곳을 찾아서 가져오는 형식으로 진행된다.
'Cloud > Docker' 카테고리의 다른 글
[Docker] 컨테이너 끼리의 통신 (0) | 2023.06.05 |
---|---|
[Docker] 환경변수, env 파일 작업 (0) | 2023.06.05 |
[Docker] Docker 자주쓰는 명령어 (0) | 2023.06.04 |
[Docker] 이미지 레이어 (0) | 2023.06.04 |
Dockerfile을 사용하여 도커 이미지를 만들고 컨테이너 실행하기 (0) | 2023.06.04 |