Centos 컨테이너 내에서 애플리케이션을 실행하려고 하는데 실시간으로 실행해야 합니다. 나는 그것을 봤고 lxc.cap.keep=sys_nice를 추가하라는 제안을 받았습니다.
이 작업을 수행한 후 lxc-start에서는 lxc.cap.keep과 lxc.keep.drop만 나란히 사용할 수 없다고 불평했습니다. 실제로 전역 lxc 구성 파일에는 여러 개의 lxc.cap.drop이 있습니다.
이 문제를 어떻게 해결할 수 있나요?
답변1
화이트리스트와 블랙리스트로 생각 lxc.cap.keep
하고 행동 하면 됩니다 . lxc.cap.drop
둘 다 사용할 수 없는 경우 해당 항목을 화이트리스트에 추가하지 말고 블랙리스트에서 해당 항목을 제거하십시오. 실제로 화이트리스트를 사용할 수 없다면 블랙리스트가 사용 중이라는 의미입니다. 해당 능력이 제거되면 블랙리스트에 있다는 뜻입니다. 그래서 재정의해야 합니다 lxc.cap.drop
.
이러한 구성은 모두 포함되어 있지만 /usr/share/lxc/config
(호스트) 배포판이나 패키지 버전에 따라 약간 다를 수 있습니다. 프로필에 다른 프로필이 포함되어 있는 경우도 있습니다. 항목은 누적되므로 파일을 직접 편집하거나(업그레이드 시 주의...) 모든 항목을 찾아서 교체해야 합니다.
가장 간단하게 전역 교체를 위해 파일에는 다음
/usr/share/lxc/config/centos.common.conf
과 유사한 줄이 포함됩니다.lxc.cap.drop = sys_module sys_nice sys_pacct
필요하지 않은 항목을 제거하고 다음으로 바꾸십시오.
lxc.cap.drop = sys_module sys_pacct
하나의 컨테이너에서만 구성을 교체하려면 제거된 모든 기능(일부 lxc 자세한 로그 또는 기타 방법)을 열거하는 방법을 찾으십시오.수동값이 없는 항목을 사용하여 블랙리스트를 해제하고 "다시 작성"하십시오. 호스트도 CentOS인 경우 삭제 후
sys_nice
컨테이너 구성에 추가하고 ,포함 후:lxc.cap.drop = lxc.cap.drop = mac_admin mac_override setfcap lxc.cap.drop = sys_module sys_pacct lxc.cap.drop = sys_rawio sys_time