가상 머신 내에서 컨테이너를 실행 중입니까?


15

컨테이너는 하드웨어를 가상화하지 않고 대신 컨테이너의 소프트웨어를 시스템의 다른 컨테이너에서 실행되는 소프트웨어와 분리하기 때문에 VM보다 컨테이너가 훨씬 가볍다는 것을 이해합니다.

내 상황은 추가 서버를 구입할 여유가 없으며 내가 보유한 서버는 모두 하이퍼 바이저를 실행하는 것입니다. 상대적으로 작은 웹 응용 프로그램의 인스턴스를 호스팅하려면 적어도 6 개의 "서버"를 프로비저닝해야합니다 (각 인스턴스는 다른 고객을위한 것입니다). 이러한 각 서버에 대해 새 VM을 프로비저닝하는 것은 낭비이므로 2 개의 VM을 설정하고 다음 중 하나를 수행 할 계획입니다.

  1. 가상 호스트 (apache)를 사용하여 각 VM에서 여러 애플리케이션 인스턴스를 실행하십시오. 또는
  2. 환경을 분리 할 수 ​​있도록 VM에 컨테이너를 설정하십시오.

이것을 고려할 때 컨테이너 시스템과 관련하여 무시할 수없는 오버 헤드가 있습니까? VM 내부에서 사용하는 것이 좋지 않은 아이디어가 됩니까? 아니면 컨테이너를 사용하지 않으려는 다른 기술적 이유가 있습니까?

답변:


13

Docker는 VM에 비해 매우 가벼우 며 VM 시스템은 컨테이너를 잘 실행하는 기능을 수행해야합니다. 각 컨테이너는 기본적으로 격리 된 시스템으로 실행되므로 시스템 안정성의 관점에서 격리하기에 매우 좋습니다. 귀하의 설명에 따르면 Docker의 이상적인 사용 사례처럼 들립니다. Docker를 사용하여 실험을 수행하면 최신 버전을 사용하십시오. 이전 버전 중 일부는 상당히 불쾌한 취약점이 있습니다. Docker를 실행할 때 몇 가지 보안 고려 사항이 있습니다.

SELinux -SELinux는 컨테이너를 인식하며 각 컨테이너에 대해 임의로 이름이 지정된 MCS 레이블을 자동으로 작성합니다. 이는 LXC 컨테이너가 자체적으로 "포함"된 것으로 간주되지 않기 때문에 격리를 보장하는데 도움이됩니다.

USER 지시문 -각 Dockerfile에서 USER 지시문을 사용하고 사용자가 기본값 인 root 이외의 계정으로 실행하는 것이 가장 좋습니다. 여기서 중요한 것은 사용자가 시스템에 존재해야한다는 것입니다. 또한이 새로운 사용자를위한 chowning / chmodding 파일 및 디렉토리를 실망시킬 수 있지만 위험을 줄이는 데 도움이됩니다. 일반적으로 시스템의 다른 부분과 겹치지 않는 모든 시스템에서 공통 사용자를 사용할 수 있도록 시스템에서 "컨테이너 사용자"또는 이와 유사한 것을 만드는 것이 좋습니다.

그렇지 않으면 가장 어려운 부분은 컨테이너를 관리하고 필요할 때 업데이트하는 것입니다.


3

컨테이너 시스템과 관련하여 무시할 수없는 오버 헤드가 있습니까? VM에서 컨테이너 시스템을 사용하는 것이 좋지 않습니다.

합니까 도커 컨테이너 성능은 VM웨어의 vSphere에 도움 당신은?

또는 컨테이너를 사용하지 않으려는 다른 기술적 이유가 있습니까?

Docker는 아직 사용하지 않았기 때문에 일반적으로 Docker에 대해 알지 못합니다. 관리 소프트웨어에는 VM 관리 소프트웨어에 비해 아직 성숙도가 부족하다고 생각하지만 vSphere 관리자이므로 편견이있을 수 있습니다.

Docker on VM을 고려할 때 CoreOS는 이제 공식적으로 vSphere 5.5에서 지원됩니다 . 따라서 적어도 VMware는 VM의 Docker / 컨테이너가 정상이라고 생각합니다.

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