컨테이너의 데이터를 데이터를 영속적(Persistent) 데이터로 활용할 수 있는 방법에 대한 정리
컨테이너를 삭제하면 컨테이너 계층에 저장돼 있던 데이터베이스의 정보도 삭제된다. 데이터를 컨테이너가 삭제되어도 영속적 데이터로 활용할 수 있는 방법들이 있는데 그중 가장 활용하기 쉬운 방식이 볼륨을 활용하는 것이다.
Stateless
Stateful
형태: [호스트의 공유 디렉터리]:[컨테이너의 공유 디렉터리]
// 예시: mysql 데이터베이스의 데이터를 저장하는 기본 디렉터리를 호스트의 /home/wordpree_db 와 공유한다.
-v /home/wordpress_db:/var/lib/mysql
case1
컨테이너와 호스트에 모두 파일이 없고 컨테이너에 파일을 쓰는 경우 호스트로 복사된다.
case2
컨테이너와 호스트에 모두 파일이 있고 마운트를 하는 경우 호스트의 디렉터리 내용이 컨테이너의 디렉터리에 덮어씌워진다
// 예시
--volumes-from volume_overide
// 예시
# docker volume create --name [volume name] // 생성
# docker volume ls // 조회
# docker inspect --volume [volume name] // 정보확인
// 컨테이너는 볼륨을 컨테이너의 /root/ 디렉터리에 마운트므로 /root 디렉터리에 파일을 쓰면 해당 파일이 볼륨에 저장됨
# -v myvolume:/root/
// mount 옵션으로 생성
--mount type=volume, source=myvolume, target=/root
// 호스트의 디렉터리를 컨테이너 내부에 마운트하는 경우 type 을 bind 로 지정
--mount type=bind,, source=/home/wordpress_db, target=/home/testdir