3.9.7. 로컬 볼륨 사용량 차단
Dockerfile 의 VOLUME
명령을 사용하거나 docker run -v <volumename
> 명령을 사용하여 볼륨을 프로비저닝하면 호스트의 스토리지 공간이 사용됩니다. 이 스토리지를 사용하면 예기치 않은 공간 문제가 발생하여 호스트를 중단할 수 있습니다.
OpenShift Container Platform에서 자체 이미지를 실행하려고 하면 노드 호스트의 전체 스토리지 공간이 채워지게 됩니다. 이 문제에 대한 한 가지 해결책은 사용자가 볼륨을 사용하여 이미지를 실행하지 못하도록 하는 것입니다. 이렇게 하면 사용자가 액세스할 수 있는 유일한 스토리지를 제한할 수 있으며 클러스터 관리자가 스토리지 할당량을 할당할 수 있습니다.
docker-novolume-plugin 을 사용하면 정의된 로컬 볼륨에서 컨테이너를 시작하지 못하도록 하여 이 문제를 해결합니다. 특히 플러그인은 다음을 포함하는 docker run
명령을 차단합니다.
-
--volumes-from
옵션 -
VOLUME
(s)가 정의된 이미지 -
docker volume
명령을 사용하여 프로비저닝된 기존 볼륨에 대한 참조
플러그인은 바인드 마운트에 대한 참조를 차단하지 않습니다.
docker-novolume-plugin 을 활성화하려면 각 노드 호스트에서 다음 단계를 수행합니다.
docker-novolume-plugin 패키지를 설치합니다.
$ yum install docker-novolume-plugin
docker-novolume-plugin 서비스를 활성화하고 시작합니다.
$ systemctl enable docker-novolume-plugin $ systemctl start docker-novolume-plugin
/etc/sysconfig/docker 파일을 편집하고
OPTIONS
목록에 다음을 추가합니다.--authorization-plugin=docker-novolume-plugin
docker 서비스를 다시 시작하십시오.
$ systemctl restart docker
이 플러그인을 활성화하면 로컬 볼륨이 정의된 컨테이너가 시작되지 않고 다음 오류 메시지가 표시됩니다.
runContainer: API error (500): authorization denied by plugin docker-novolume-plugin: volumes are not allowed