소프트웨어공학 수업을 수강하면서 정리한 내용입니다!
일단 docker에 대해 알아보기 전에 container가 무엇인지 그리고 왜 필요한지부터 알아보려고 합니다.
개발 환경, testing 환경, production 환경 등이 모두 동일해야 local에서 잘 돌아가는 software가 어디에서 실행해도 잘 동작함이 보장됩니다. 따라서 OS와 library 등 모든 software의 dependency를 포함하는 실행환경 즉, frontend + backend + db + library, environment 등
dependency를 개발자 동작 환경 그대로 포함한 container가 필요하게 된 것 입니다.
개별적인 software의 실행에 필요한 환경을 독립적으로 운용할 수 있도록 기반환경 또는 다른 실행환경과의 간섭을 막고 실행의 독립성을 확보해주는 운영체계 수준의 격리 기술입니다.
-> 이 과정은 전부 container engine위에서 일어남