저는 oraclelinux 9 Linux 호스트에서 Linux 컨테이너를 실행하고 있습니다(호스트 자체는 가상 머신에서 실행 중입니다).
docker는 어디에서 sysctl 매개변수를 읽나요?
docker에서 사용하는 기본 sysctl 값을 변경해 보았습니다.
이를 위해 호스트 시스템에서 다음 단계를 수행했습니다.
sysctl -w net.ip4.udp_rmem_min=64000000
sysctl -a | grep ip4.udp_rmem_min
-> 64000000systemctl restart docker
(그냥 저장하려고)docker run --rm -it oraclelinux:9
컨테이너에
sysctl -a | grep ip4.udp_rmem_min
-> 4096
왜 64000000 대신 4096인가요?
cat /proc/sys/net/ipv4/udp_rmem_min
호스트에서 64000000을 반환합니다.
또한 매개변수가 포함된 파일을 복사하고 /etc/sysctl.d/
컴퓨터를 다시 시작했는데 결과는 동일했습니다.
흥미롭게도 Ubuntu 22 시스템(베어메탈)에서 동일한 작업을 수행하면 작동합니다.
그렇다면 docker는 oraclelinux 9/rhel에서 sysctl 값을 어디에서 읽습니까?
그냥 호스트의 것을 사용하는 줄 알았는데, 아니면 뭔가 다른 문제가 있는 걸까요?
--sysctl
with 을 사용할 수 있다는 것을 알고 있지만 docker run
docker를 간접적으로 사용하고 있기 때문에 그런 식으로 사용할 수 없습니다. kind
이를 통해 정의된 가능성을 제공하지 않는 것 같습니다.--sysctl