📌 도커 볼륨에 대해 다룹니다.
도커 이미지로 컨테이너를 생성하면 이미지는 읽기 전용이 되어 컨테이너의 변경사항은 컨테이너가 갖고 있는다.
👉 컨테이너를 삭제하면 컨테이너 계층에 저장돼있던 모든 정보가 삭제된다.
이를 방지하기 위한 방법 중 하나가 도커 볼륨이다.
docker run -d \
--name db_hostvolume \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=testdb \
-v /home/db_hostvolume:/var/lib/mysql \
mysql:5.7
-v /home/db_hostvolume:/var/lib/mysql
옵션의 의미는 호스트의 /home/db_hostvolume 디렉터리와 컨테이너의 /var/lib/mysql 디렉터리를 공유한다는 뜻이다.
즉 [호스트의 공유 디렉터리]:[컨테이너의 공유 디렉터리] 형태이다.
docker run -i -t \
--name current_container \
--volumes-from from_container \
ubuntu:14.04
--volumes-from from_container
옵션의 의미는 from_container
컨테이너에서 볼륨을 공유받는다는 뜻이다.
여러 개의 컨테이너가 동일한 컨테이너에서 --volumes-from
옵션을 사용하여 볼륨을 공유해 사용할 수도 있다.
docker volume create --name my_volume
docker volume create
명령어로 도커 자체에서 제공하는 볼륨 기능을 활용해 볼륨을 생성할 수 있다.
docker volume ls
위 명령어로 생성된 볼륨을 확인한다.
docker run -i -t --name test_volume \
-v my_volume:/root/ \
ubuntu:14.04
다음과 같이 -v
옵션을 사용하면 my_volume
볼륨을 컨테이너의 /root/ 디렉터리에 마운트한다.
docker inspect --type volume my_volume
docker inspect
명령어를 사용하여 my_volume
볼륨이 실제로 어디에 저장되는지 알 수 있다.
docker volume prune
도커 볼륨을 생성하고 삭제하다 보면 불필요한 볼륨들이 남아있게 되는데 위 명령어를 사용하면 사용되지 않는 볼륨을 한꺼번에 삭제할 수 있다.