본문 바로가기
개발일지

DOCKER

by Peter.JH 2024. 2. 3.
728x90

1. 도커에 커널이 없어도 되는 이유는 뭘까

도커는 OS 수준에서 가상화를 제공하는 컨테이너 기반의 오픈소스 플랫폼입니다. 이는 가상 머신(VM)과는 달리 각 컨테이너가 자체 OS를 가지고 있지 않다는 것을 의미합니다. 이러한 특성으로 인해 컨테이너는 더 적은 리소스를 사용하고 더 빠르게 시작되며 더 많은 애플리케이션을 같은 하드웨어에서 실행할 수 있습니다. 그럼 왜 도커에서는 커널이 없어도 되는 걸까요? 그 이유는 도커 컨테이너가 호스트 OS의 커널을 공유하기 때문입니다. 도커 컨테이너는 호스트 시스템의 커널과 직접적으로 상호작용하며, 각 컨테이너는 독립적인 사용자 공간을 가집니다. 이렇게 되면 컨테이너는 가볍고 빠르게 실행될 수 있으며, 각 컨테이너가 자체 커널을 필요로 하지 않게 됩니다. 즉, 도커 컨테이너는 커널을 공유하므로 컨테이너마다 커널을 갖출 필요가 없습니다. 이는 도커의 주요 이점 중 하나로, 리소스 사용의 효율성과 빠른 시작 시간, 그리고 높은 휴대성을 가능하게 합니다.

 

2. 하나의 커널로 여러개의 도커 컨테이너를 실행하면 성능에 문제가 없을까?

하나의 커널을 사용하여 여러 도커 컨테이너를 실행하더라도 일반적으로 성능에 큰 영향을 미치지 않습니다. 그 이유는 각 도커 컨테이너가 호스트 OS의 커널을 공유하면서도 독립적인 환경을 유지하기 때문입니다. 즉, 한 컨테이너에서 발생하는 문제가 다른 컨테이너에 영향을 미치지 않습니다. 그러나 이는 컨테이너가 물리적인 리소스(CPU, 메모리, 네트워크 등)를 공유함에 따라 발생할 수 있는 제한사항에 대한 고려 없이 말하는 것입니다. 예를 들어, 동시에 많은 컨테이너를 실행하면 시스템 리소스가 과부하될 수 있습니다. 이 경우, 성능 저하나 다른 문제가 발생할 수 있습니다. 따라서, 도커 컨테이너를 사용할 때는 시스템 리소스의 사용량을 적절히 관리하고, 필요에 따라 적절한 리소스 제한을 설정하는 것이 중요합니다. 이렇게 하면 하나의 커널을 사용하는 도커의 효율성과 유연성을 최대한 활용할 수 있습니다.

 

컨테이너 수를 고려해서 사용하자.

도커 컨테이너는 가볍고 빠르게 시작되지만, 그럼에도 불구하고 각 컨테이너는 CPU, 메모리, 네트워크 같은 시스템 리소스를 사용합니다. 따라서, 너무 많은 컨테이너를 동시에 실행하면 시스템의 리소스가 과부하되어 성능 저하를 일으킬 수 있습니다.

그렇기 때문에, 컨테이너의 수를 적절히 관리하고, 시스템의 리소스 사용량을 모니터링하며 필요한 경우 리소스 제한을 설정해야 합니다. 또한, 컨테이너의 스케일링도 고려해야 합니다. 즉, 요구사항에 따라 컨테이너의 수를 증가시키거나 감소시키는 것이 필요합니다.

이러한 관리는 컨테이너 오케스트레이션 도구를 사용하면 더욱 효과적으로 수행할 수 있습니다. Kubernetes와 같은 도구는 컨테이너의 스케일링, 장애 복구, 로드 밸런싱 등을 자동화하여, 컨테이너의 수와 리소스 사용을 더욱 효율적으로 관리할 수 있게 도와줍니다.

 

컨테이너 하나만 사용하게 되면 도커 엔진은 단순히 오버헤드

 

바인드마운트:  파일을 직접 편집해야 할 일이 많은 경우, 자주 사용하는 파일을 두는 경우

볼륨마운트: 자주 사용하지 않지만 지우면 안되는 파일

728x90