![UNIX 기반 운영 체제에 다양한 응용 프로그램을 설치할 때 충돌할 수 있는 시스템 전체 구성 설정 집합은 무엇입니까?](https://linux55.com/image/12493/UNIX%20%EA%B8%B0%EB%B0%98%20%EC%9A%B4%EC%98%81%20%EC%B2%B4%EC%A0%9C%EC%97%90%20%EB%8B%A4%EC%96%91%ED%95%9C%20%EC%9D%91%EC%9A%A9%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84%20%EC%84%A4%EC%B9%98%ED%95%A0%20%EB%95%8C%20%EC%B6%A9%EB%8F%8C%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EC%A0%84%EC%B2%B4%20%EA%B5%AC%EC%84%B1%20%EC%84%A4%EC%A0%95%20%EC%A7%91%ED%95%A9%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이 기사를 읽어보세요컨테이너화 보고서저자는 다음과 같이 언급했습니다.
Unix의 공유 전역 파일 시스템으로 인해 발생하는 한 가지 문제는 구성 격리가 부족하다는 것입니다. 여러 응용 프로그램이 시스템 전체 구성 설정에 대해 충돌하는 요구 사항을 가질 수 있습니다.
개발을 위해 서로 다른 애플리케이션을 설치하려면 동일한 라이브러리의 서로 다른 버전이 필요하거나 모호하게도 서로 다른 시스템 전체 구성 값이 필요한 경우가 많다는 것을 알고 있습니다. UNIX 기반 운영 체제에서 이 컬렉션이 무엇인지 잘 모르겠습니다.
일반적으로 이 문제를 일으키는 구성 값은 무엇입니까?
순진하게 말하면, 최종 사용자가 애플리케이션을 배포하거나 설치하면 이것이 문제가 덜 되지 않을까요? 유사한 애플리케이션의 개발 버전을 쉽게 병렬로 실행할 수 없는데 패키지 관리자를 사용하여 다운로드하면 문제 없이 실행할 수 있는 이유는 무엇입니까?
답변1
예, 환경 변수를 사용하여 일부 항목을 개별적으로 구성할 수 있습니다. 프로그램이 파일 위치를 하드코딩하면 충돌이 발생할 수 있습니다.
해결책은 네임스페이스입니다. 네임스페이스에는 파일 시스템, 프로세스, 사용자, 네트워크 등 다양한 유형이 있습니다.
언급한 파일 시스템의 경우, 네임스페이스는 서로 다른 네임스페이스의 프로세스에 대해 완전히 다른 파일 시스템 보기를 제공할 수 있습니다. 일반적으로 호스트 내의 하위 디렉터리는 새 네임스페이스의 루트가 됩니다.
이는 네임스페이스, cgroup 등을 관리하는 데 도움이 되며 컨테이너화 도구를 사용할 수 있습니다. 그들은 우리를 위해 이러한 커널 서비스를 관리하지만 일을 더 쉽게 만듭니다.
컨테이너에서 실행되는 모든 프로세스는 (보통) 소수의 프로세스만 실행되는 시스템으로 간주됩니다. 파일 시스템의 하위 집합이 표시됩니다. 자체 네트워크 구성이 표시됩니다. 시스템 리소스(CPU, 메모리 등)의 하위 집합이 표시됩니다.