2017-05-17 4 views
0

도커 컨테이너의 경우 docker run에 CPU 한도 (예 : --cpu-quota--cpu-shares)와 메모리 한도 (--memory)를 설정할 수 있습니다. --ulimit을 통해 사용자에 대해 전체 nproc 제한을 설정할 수도 있습니다.개별 사용자 용 도킹 컨테이너의 리소스 제한

다른 두 명의 사용자가 한 컨테이너에서 작업 부하를 실행하고 있다고 가정 해 봅니다. 하나의 특정 도커 컨테이너 내부에서만 개별 사용자에 대한 제한을 설정하는 방법이 있습니까 (시스템 전체가 아님)?

예를 들어 --ulimit nproc=100을 사용하면 사용자가 도커 컨테이너 내부에서 최대 n 개의 프로세스를 정확히 실행할 수 있도록 지정할 수 없습니다. 예를 들어, 사용자가 이미 컨테이너 외부에서 40 개의 프로세스를 실행중인 경우, 컨테이너 내부에서 60 개의 프로세스를 실행할 수 있습니다. ulimit nproc=40을 설정하고 40 개의 프로세스가 컨테이너 외부에서 실행되도록 설정하면 컨테이너 내부에서 새 프로세스를 시작할 수 없습니다.

그렇다면 개별 도커 컨테이너에 대해 CPU, 메모리 및 프로세스 수 제한을 적용 할 수있는 방법을 찾고 있습니다. 이러한 제한이없는 다른 도커 컨테이너가 동일한 시스템에서 실행중인 경우에도 마찬가지입니다. 각 사용자에 대한 도커 컨테이너 시작 옵션이 아닙니다.

답변

0

당신은 예를 들어, 같은 myimage을을 사용하여 2 개 differents의 명령을 실행할 수 있습니다

docker run -u user1 --cpu-shares=12... myimage

docker run -u user2 --cpu-shares=24...myimage

당신은 단지 이미지의 생성에서 2 사용자를 만들어야합니다

질문에 대한 답변이 확실하지 않은 경우

+0

이렇게하면 두 개의 컨테이너가 시작됩니다. 시나리오에서는 한 컨테이너에 여러 사용자가 있습니다. –