Docker 컨테이너에 더 많은 메모리를 할당하는 방법


117

제목이 읽으면 컨테이너에 더 많은 메모리를 할당하려고합니다. 관련이있는 경우 "aallam / tomcat-mysql"이라는 도커 허브의 이미지를 사용하고 있습니다.

특별한 플래그없이 정상적으로 시작하면 2GB의 메모리 제한이 있습니다 (설정되지 않은 경우 메모리가 제한되지 않음을 읽더라도).

내 도커 통계는 다음과 같습니다.

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
ba57d6c9e9d2        0.22%               145.6 MiB / 1.952 GiB   7.29%               508 B / 508 B       0 B / 6.91 MB       68

나는 그렇게 명시 적으로 메모리를 설정하려고 시도했지만 동일한 결과를 얻었습니다.

docker run -d --memory=10g --memory-swap=-1 -e MYSQL_PASSWORD=password -p 3307:3306 -p 8081:8080 aallam/tomcat-mysql

나는 아마도 VM이 그것을 제한하는 것이라고 읽었습니다. 하지만 Docker 통계에 컨테이너 크기 제한이 2GB라고 표시되는 이유는 무엇입니까?

답변:


203

2GB제한은 Docker가 실행되는 VM의 총 메모리입니다.

docker-for-windows 또는 docker-for-mac을 사용하는 경우 작업 표시 줄의 Whale 🐳 아이콘에서 쉽게 늘린 다음 기본 설정-> 고급으로 이동합니다.

Docker 기본 설정

그러나 VirtualBox를 뒤에 사용하는 경우 VirtualBox를 열고 docker-machine 할당 메모리를 선택하고 구성하십시오.

Mac의 경우 다음을 참조하십시오.

https://docs.docker.com/docker-for-mac/#memory

메모리 기본적으로 Mac 용 Docker는 Mac에서 사용 가능한 총 메모리에서 할당 된 2GB 런타임 메모리를 사용하도록 설정됩니다. Mac 용 Docker가 더 적은 메모리를 사용하도록하려면이 숫자를 더 높게 (예 : 3) 또는 더 낮게 (1) 설정하여 더 빠른 성능을 얻기 위해 앱의 RAM을 늘릴 수 있습니다.

Windows의 경우 :

https://docs.docker.com/docker-for-windows/#advanced

메모리-Windows Linux VM 용 Docker가 사용하는 메모리 양 변경


72
GUI없이 어떻게합니까?
Philippe

13
@Philippe, 사용 사례는 무엇입니까? Windows 용 Docker 또는 Mac 용 Docker는 guli와 함께 제공됩니다. 귀하의 사례는 Linux를 통해 기본도 커가 있다고 생각합니다 (프로덕션 시스템 / 클라우드의 경우 가상 머신이 없음). 이러한 경우 docker에는 사용을위한 홀 머신이 있으므로 VM 메모리를 설정할 필요가 없습니다.
로버트

10
네, 나중에 알아 냈어요. 따라서 Docker 컨테이너에 4GB 이상의 RAM이 있도록하려면 Linux에서 개발하는 경우 아무것도 할 필요가 없습니까?
Philippe

3
주로 Docker 컨테이너에 메모리를 할당하지 않고 대신 컨테이너가 사용할 수있는 메모리 양 을 제한 하기 때문에 가능하지 않습니다 . 현재 답변은 컨테이너에 메모리를 할당하는 것이 아니라도 커가 실행되는 가상 머신에 메모리를 할당하는 것입니다.
Robert

2
@SiddharthPant, Linux 상자에서 직접 실행되는 도커는 사용 가능한 메모리를 많이 사용하므로 물리적 인 것 외에는 제한이 없습니다.
Robert

21

(도커 기본 설정-> 고급)에서 도커 컴퓨터에 최대 메모리 할당

고급 설정 스크린 샷 : 고급 설정 스크린 샷.

그러면 컨테이너를 실행하는 동안 Docker가 소비하는 최대 제한이 설정됩니다. 이제 4GB 이상의 RAM에 대해 -m = 4g 플래그를 사용하여 새 컨테이너에서 이미지를 실행하십시오. 예 :

docker run -m=4g {imageID}

램 제한 증가 변경 사항을 적용하는 것을 잊지 마십시오. 도커를 다시 시작하고 램 제한이 증가했는지 다시 확인하십시오. 이것은 도커 컨테이너에서 램 제한이 증가하지 않는 요인 중 하나 일 수 있습니다.


17

기본 컨테이너를 변경하고 Virtualbox를 사용하는 경우 명령 줄 / CLI를 통해 수행 할 수 있습니다.

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.