docker container run -v testvolume:/var/lib # Volume Mount ( IscsI )
docker container run -v /test:/root # Directory Binding ( NFS )
허나, 이 방식은 영구 볼륨이 아니다. 우리는 지금 외부 Storage 의 Volume 을 사용하는 것이 아닌, Host 의 Volume 을 사용하는 것이므로, Node 에 문제가 생기면 Volume 에 문제가 생기기에 영구 볼륨이 아니다
- 컨테이너를 다른 Node 로 옮기면, 기존 Data 를 사용할 수 없다. Host 의 Volume 과 Mount 되기 때문에 다른 Node 에는 해당 Volume 의 Data 가 없기 때문이다
docker service create --name testvol1 --mount type=volume,source=vol1,target=/root --replicas 1 --constraint node.role==manager nginx
- overlay 는 Node 들의 공유 자원이다. 이는 Cluster 환경에서 자동으로 Mount 되어 있다
- /dev/sda5 에 Mount 된 볼륨은 공유 자원이 아닌, Host 에 종속된 볼륨이다. 이는 공유 자원이 아니다
- 만약, manager 에서 Volume 을 생성하여, 서비스 배포시 worker 들에게 Volume Mount 명령을 내리면, worker 들은 해당 명령을 받고, 자신에게 해당 Volume 이 없는 것을 확인하고, 자체 Host 에 Volume 을 생성하여 Mount 한다. 즉, manager 만 기존에 생성한 Volume 과 Mount 되고, worker 들은 동일한 이름의 Volume 을 생성하여 Mount 하는 것이다
mkdir testvol1
docker service create --name testvol1 --mount type=bind,source=/home/rapa/testvol1,target=/root --replicas 1 --constraint node.role==manager nginx