본문 바로가기
CS/Docker

[CS/Docker] 도커 볼륨 - Docker volume

by Warehaus 2022. 3. 6.

2022.02.25 - [CS/Docker] - [도커] docker 컨테이너 목록 출력하기 / 실행 중인 컨테이너 확인 명령어

 

[도커] docker 컨테이너 목록 출력하기 / 실행 중인 컨테이너 확인 명령어

이번에는 docker 명령어를 이용해서 현재까지 생성 된 컨테이너 목록을 출력해 보려 합니다. docker ps 실행 중인 docker container 목록을 확인하는 명령어는 다음과 같습니다. docker ps 한번 실행해 보면

armin.tistory.com

 

안녕하세요 warehouse입니다.

지난 번에는 Docker 컨테이너의 목록을 출력해 보았고 이번에는 도커볼륨에 대해 알아 보려고 합니다.

 

도커볼륨에 대해


Docker volume


일반적으로 생성 된 이미지를 사용할 때, 이미 생성된 이미지는 어떠한 경우에도 변경되지 않습니다.

컨테이너를 활용하면서 컨테이너 계층에는 데이터가 쌓일 수 밖에 없는데 이런 상황에서  DB 컨테이너를 삭제하면 컨테이너 계층에 저장되어 있던 모든 정보가 삭제되는 단점이 존재합니다.

실제 운영 환경에서  도커 컨테이너는 생성과 삭제가 매우 쉬우므로 삭제하는 실수가 발생할 수 있기 때문에 정보가 삭제되는 경우에 복원이 힘들어지게 됩니다.

Docker 에서는 이를 방지하기위해 Volume을 활용하며, 이를 통해 데이터를 persistent 하게 관리 할 수 있습니다.

볼륨 활용방법


볼륨의 활용방법은 크게 두 가지로 나눌 수 있습니다.

1. 호스트와 볼륨을 공유
2. 볼륨 컨테이너 활용

각 유형에 대해 좀 더 알아보도록 합시다.


호스트와 볼륨을 공유


호스트와 볼륨을 공유하는 방식의 경우 호스트의 공유 디렉토리와 컨테이너에서의 공유 디렉토리 경로를 지정하는 옵션을 입력함으로서 가능합니다.

 

mysql 컨테이너를 실행하는 과정에서 호스트 볼륨을 공유하는 예시는 다음과 같습니다.

 

$ docker run -d --name wpdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -v /home/test:/var/lib/mysql mysql:5.7

 

-v  옵션이 새로 추가되었는데요, ':' 를 구분자로 왼쪽이 호스트, 오른쪽이 컨테이너의 디렉토리를 의미합니다.

이 두개 경로를 공유함으로써 mysql container는 종료되더라도 데이터를 호스트 볼륨에 남겨둘 수 있습니다.


볼륨 컨테이너 활용


볼륨을 사용하는 또 다른 방법으로는 볼륨컨테이너 를 활용하는 것인데요, 컨테이너를 생성할 때 --volumes-from 옵션을 설정하면 -v or --volume 옵션을 적용한 컨테이너의 볼륨 디렉토리를 공유할 수 있게 됩니다. 

 

$ docker run -i -t --name volume_container --volumes-from volume_override ubuntu:14.04

 

위 예시는 volume_override 이름으로 만들어 진 컨테이너에서 사용하고 있는 볼륨을 volume_container 이름의 컨테이너에서 다시 재 활용 하는 방식입니다.

 

이렇게 사용하기 위해서는 사전에 volume_override 라는 컨테이너가 사전에 필수적으로 수행되어야 합니다.