MLOPS/docker
컨테이너가 만들어주는 데이터 보존하기
개발허재
2022. 1. 16. 17:47
예를 들어 mysql 디비를 사용할 때
컨테이너의 /var/lib/mysql의 rw 레이어에 수많은 데이터들이 쌓이게 된다.
따라서 도커호스트에 특정 저장소를 생성한다.
디렉토리가 될수도 있고 디스크가 될수도 있고 상관없다!
컨테이너가 만들어주는 데이터를 /dbdata에 마운트한다
명령어는 다음과 같다
$ docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=pass mysql:latest
--보안이슈--
컨테이너가 도커 호스트의 데이터를 수정할 수 있다면 해킹의 위험에 노출된다
따라서,
:ro 라는 옵션으로 readonly 명령을 내려서 볼륨을 마운트하게 해준다
$ docker run -d --name db -v /dbdata:/var/lib/mysql:ro -e MYSQL_ALLOW_EMPTY_PASSWORD=pass mysql:latest
그러고 나서, 도커 호스트에 /dbdata에 들어가보면 마운트된것을 확인할수있고 앞으로 docker rm으로 삭제해도 데이터는 도커 호스트에 남아있게 된다.