Docker Volume (도커 볼륨)
- 도커 볼륨을 이용해서 데이터 공유하기
· Version : Docker
Docker 컨테이너가 삭제(또는 재시작)되면 컨테이너의 변경된 데이터가 함께 삭제된다. 데이터를 영속적으로 보존하기위해 volume 옵션을 사용하여 호스트 의 저장소를 마운트하여 사용한다.
· Docker Volume (호스트 볼륨 공유) : http://sqlmvp.kr/221449590567
· Docker Volume (컨테이너 볼륨 공유) : http://sqlmvp.kr/221451346970
이번 포스트에서는 도커 자체에서 제공하는 볼륨 기능을 활용하는 방법에 대해서 알아본다. 볼륨을 생성할 때 플러그인을 사용하여 다양한 종류의 스토리지 백엔드를 쓸 수 있지만 이번 포스트에서는 기본적인 도커 엔진에서 제공되는 local을 사용한다.
도커 볼륨을 생성하는 명령어는docker volume create 를 사용한다. 생성된 볼륨을 확인하는 방법은 docker volume ls 이다.
docker volume create –name my-vol docker volume ls |
도커 볼륨은 실제 호스트의 어느 경로에 만들어 졌는지 확인하는 방법은 docker volume inspect 명령을 사용한다.
docker volume inspect my-vol |
도커 볼륨을 삭제하는 명령어는docker volume rm 이다. 참고로 컨테이너를 삭제해도 볼륨은 자동으로 삭제되지 않는다.
docker volume rm my-vol |
사용되지 않는 모든 볼륨을 삭제하려면 아래 명령을 실행 한다.
docker volume prune |
도커 볼륨을 사용하는 컨테이너를 생성하기 위해서는 [볼륨이름]:[컨테이너 공유 디렉터리] 순으로 명령을 입력한다. 아래 예시는 my-vol이라는 볼륨을 컨테이너의 /app 디렉터리에 마운트 한다. /app 디렉터리에 파일을 쓰면 해당 파일이 볼륨에 저장된다.
docker run -d --name devtest -v my-vol:/app nginx:latest |
도커 볼륨은 여러 컨테이너에서 사용할 수 있으므로 아래 그림처럼 파일을 쉐어하여 머신간에 데이터를 공유할 수 있다.
만약 여러 컨테이너가 있고 여러 볼륨이 있을 때 해당 컨테이너가 어떤 볼륨을 사용하는지 확인하는 명령은 docker container inspect를 사용한다. 이 명령은 컨테이너의 상세한 정보를 나타낸다.
docker container inspect devtest |
컨테이너가 아닌 외부에 데이터를 저장하고 컨테이너는 그 데이터로 동작하도록 설계하는 것을 스테이트리스(stateless)라고 하며 컨테이너 내부에 데이터를 저장하고 상태가 있는 경우 스테이트풀((stateful)하다고 한다.
[참고자료]
https://docs.docker.com/storage/volumes/
2019-02-02 / Sungwook Kang / http://sqlmvp.kr
Docker, docker volume, 도커 볼륨, 도커 명령어, 도커 파일 공유, 도커 호스트 디렉터리 공유
'SW Engineering > DevOps, SRE' 카테고리의 다른 글
Docker Container 리소스 제한-CPU, Memory, Disk I/O 리소스 사용량 설정 (0) | 2019.03.27 |
---|---|
Docker Container 로그 확인-컨테이너에서 발생하는 다양한 로그 확인 (3) | 2019.03.27 |
Docker Volume (컨테이너 볼륨 공유)-컨테이너 볼륨을 다른 컨테이너와 공유하기 (0) | 2019.03.26 |
Docker Volume (호스트 볼륨 공유)-컨테이너 데이터를 호스트 디스크에 저장하기 (0) | 2019.03.26 |
Docker Command Basic (도커 기본 명령어) (0) | 2019.03.26 |