컨테이너란 무엇인가?
컨테이너는 쉽게 말해 '데이터 또는 프로그램을 격리'시키는 기능을 한다.
왜 격리시켜야 할까?
컨테이너 격리의 중요성은 일반적인 컴퓨팅 환경과 비교하면 쉽게 이해할 수 있다.
현대의 소프트웨어 환경에서는 대부분의 프로그램이 독립적으로 동작하지 않는다. 여러 프로그램들이 시스템의 라이브러리, 데이터, 파일 등의 자원을 공유하며 작동하는데, 이는 때때로 버전에 따른 호환성 문제를 일으킨다.
예를 들어, A 프로그램은 R 버전 5.0에서만 동작하고 B 프로그램은 R 버전 8.0에서만 동작한다고 가정해 보자. 이런 경우 일반적인 환경에서는 R버전 5.0과 R버전 8.0이 동시에 설치될 수 없다. 이로 인해 둘 중 하나의 프로그램은 버전문제가 발생한다.
이때 컨테이너 기술이 해결책이 된다.
A 프로그램은 R 5.0 환경을 가진 컨테이너에, B 프로그램은 R 8.0 환경을 가진 별도의 컨테이너에 격리하여 구동함으로써 충돌 없이 두 프로그램을 모두 실행할 수 있다.
이처럼 컨테이너의 격리 특성은 서로 다른 버전의 소프트웨어를 동시에 운영할 수 있게 해주는 강력한 장점을 제공한다.