데이터를 영구적으로 저장하기 위한 방법이다. Volume은 도커에 의해 관리된다.
MySql을 컨테이너로 띄우고 testdb
를 생성한다.
docker inspect mysql
명령어를 통해 Volume을 확인하면, /var/lib/mysql
으로 설정한 것을 알 수 있다.
마운트 한 위치 또한 알 수 있다.
MySql 컨테이너를 제거하고 다시 생성하면, 생성했던 testdb
데이터베이스가 없다.
컨테이너를 다시 올리게 되면, 임의의 새 볼륨을 생성하여 다시 마운트한다.
따라서 이전에 데이터베이스를 생성했던 컨테이너가 마운트하던 볼륨의 이름을 명시하여 컨테이너를 실행해보았다.
sudo docker run --rm -d --name mysql -e MYSQL_ROOT_PASSWORD=Miracle! -v {볼륨명}:/var/lib/mysql mysql:latest
이전에 생성했던 testdb
가 존재하는 것을 확인할 수 있다.
볼륨에 이름을 붙여 명시적으로 생성하여 마운트 할 수도 있다!!!
위에 보면 bind mount, volume, tmpfs mount가 있는데 그 차이에 대해서도 알아봐야겠다.
참고자료