우분투 18.04에서 도커 컨테이너의 리소스를 제한하는 방법

Docker 컨테이너 내에서 웹 응용 프로그램을 실행하려고하거나 이미 기술에 적응 한 경우 가장 중요한 측면 중 하나를 관리해야합니다. 즉 컨테이너가 사용하는 호스트 리소스의 양.


기본적으로 컨테이너가 사용할 수있는 메모리 또는 CPU 양에는 제한이 없습니다. 호스트의 커널 스케줄러가 허용하는만큼 사용할 수 있습니다. 실행중인 컨테이너가 너무 많은 호스트 시스템 메모리 또는 CPU를 소비하지 않아야합니다. 커널에 남은 메모리 용량이 매우 적다는 것을 감지하면 메모리 부족 예외 프로세스 종료를 시작하면 일부 경우 전체 시스템이 종료 될 수 있습니다..

이러한 상황을 피하려면 항상 애플리케이션에서 테스트를 실행하고 필요한 자원의 양을 찾은 다음 적절한 양의 자원을 사용하도록 컨테이너를 제한해야합니다..

Docker의 제한 리소스 기능을 사용하도록 Ubuntu 18.04 구성

이제 시작하겠습니다. 우선, 커널이 이러한 기능을 허용하는지 확인해야합니다. 이를 위해서는 다음 명령을 실행해야합니다.

$ sudo docker 정보

출력 끝에 다음 경고가 표시되면 시스템 파일을 약간 변경해야합니다..

경고 : Noswaplimitsupport

이 경우 우분투 18.04에서 아래 단계를 따르십시오.

  1. sudo 권한이있는 사용자로 Ubuntu 호스트에 로그인.
  1. 편집 / etc / default / grub 파일에 다음 줄을 추가하십시오..

GRUB_CMDLINE_LINUX ="cgroup_enable = 메모리 스왑 계정 = 1"

  1. 위의 줄을 추가 한 후 파일을 저장하고 닫습니다. 다음 명령으로 GRUB을 업데이트해야합니다..

$ sudo update-grub

시스템이 재부팅되면 변경 사항이 적용됩니다. 다음 명령을 다시 실행하여 변경 사항이 적용되었는지 확인하십시오.

$ sudo dockerinfo

경고가 다시 표시되지 않으면 계속 진행하십시오.

이제 우리가 처리해야 할 두 가지 주요 자원이 있습니다.

  1. 기억
  2. CPU

컨테이너의 메모리 액세스 제한

컨테이너를 시작하는 동안 도커 실행 우리는 다른 옵션을 지정할 수 있습니다. 다음은 예입니다.

컨테이너의 메모리 사용을 제한하려면 –기억 선택권. 양의 정수와 s 접미사가 필요합니다. b, k, m, g. 다음 명령을 사용하면 Ubuntu 컨테이너는 1 기가 바이트 이상의 메모리 사용 제한으로 실행됩니다..

$ sudo docker run -it –memory =”1g”우분투 / bin / bash

컨테이너의 메모리 스왑 사용을 디스크 사용으로 제한하려면 –메모리 스왑 선택권. 또한 양의 정수와 s 접미사가 필요합니다. b, k, m, g. 다음과 같은 경우 컨테이너를 사용할 수 있습니다

1 기가 바이트의 비 스왑 메모리 1 기가 바이트의 스왑 메모리. 컨테이너에 허용되는 총 스왑 메모리 양은 –memory-swap과 –memory (2g-1g)의 차이입니다. 컨테이너가 스왑 메모리를 사용하지 않게하려면 –memory 및 –memory-swap을 동일한 값으로 설정하십시오.

$ sudo docker run -it –memory =”1g”–memory-swap =”2g”우분투 / bin / bash

docker가 호스트 시스템에서 메모리 부족을 감지하고 설정 한 경우 –메모리 예약, 그 값이 우선합니다 –기억. 그러나 설정하지 않은 경우 –기억 컨테이너의 메모리 사용량을 제한하지 않습니다. 메모리 부족이 감지 된 경우에만 적용됩니다. 그것은 일종의 부드러운 한계입니다.

$ sudo docker run -it –memory =”1g”–memory-reservation =”512m”우분투 / bin / bash

컨테이너의 CPU 사용 제한

컨테이너의 CPU 시간을 제한하려면 –cpus 선택권. “.5″로 설정하면 50000 마이크로 초의 CPU 시간을 의미합니다..

$ sudo docker run -it –cpus =".5" 우분투 / bin / bash

컨테이너의 CPU 공유를 제한하려면 –cpus- 공유 선택권. 기본적으로 1024. 컨테이너가 호스트 머신 CPU주기의 더 많거나 적은 부분을 사용할 수 있도록 컨테이너를 늘리거나 줄입니다. 이는 호스트주기가 CPU주기를 제한 할 때 유용합니다. 그렇지 않으면 컨테이너는 필요한만큼 CPU주기를 사용할 수 있습니다. 이것은 또한 소프트 한계의 한 종류입니다.

$ sudo docker run -it –cpus-shares ="512" 우분투 / bin / bash

결론

컨테이너의 리소스 제한은 호스트 시스템의 커널 구성에 따라 크게 달라집니다. 컨테이너의 요구 사항을 알고 그에 따라 제한하는 것이 매우 중요하지만이 경우에는 우분투 18.04 인 호스트 시스템 환경에 대해서도 잘 알고 있어야합니다. 리소스 요구 사항에 대한 좋은 아이디어를 얻으려면 항상 앱에서 여러 테스트를 수행하십시오. 신중하게 자원을 사용하면 많은 비용을 절약 할 수 있습니다.

실행중인 도커 컨테이너에 대한 통계를 볼 수 있습니다. 도커 통계 컨테이너 이름을 지정하여 명령을 내리고 부과 한 제한 및 구성을 확인하십시오..

$ sudo docker 통계 우분투

이 3 가지 최고의 웹 호스팅 서비스를 확인하십시오

FastComet

시작 가격 :
$ 2.95


신뢰할 수 있음
9.7


가격
9.5


사용자 친화적
9.7


지원하다
9.7


풍모
9.6

리뷰 읽기

FastComet 방문

A2 호스팅

시작 가격 :
$ 3.92


신뢰할 수 있음
9.3


가격
9.0


사용자 친화적
9.3


지원하다
9.3


풍모
9.3

리뷰 읽기

A2 호스팅 방문

ChemiCloud

시작 가격 :
$ 2.76


신뢰할 수 있음
10


가격
9.9


사용자 친화적
9.9


지원하다
10


풍모
9.9

리뷰 읽기

ChemiCloud 방문

관련 사용법 기사

  • AWS EC2와 함께 Docker 컨테이너를 사용하는 방법
    전문가
  • OpenStack Heat를 사용하여 Docker 컨테이너를 배포하는 방법
    전문가
  • Ubuntu 16.04 VPS 또는 전용 서버에서 Docker Swarm Cluster를 설정하는 방법
    전문가
  • AWS EC2와 함께 Docker 컨테이너를 사용하는 방법
    전문가
  • AWS EC2와 함께 Docker 컨테이너를 사용하는 방법
    전문가
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me