리눅스 OS
-> 도커 엔진
-> 이미지
-> 컨테이너 생성
하나의 프로그램을 실행시키는데 라이브러리(연동 프로그램 등)의 의존성이 충돌하는 경우
A 프로그램은 라이브러리 6.5 버전을 필요로 하지만
B 프로그램은 라이브러리 5보다 낮은 버전을 필요로 할 경우
프로그램 하나는 사용하지 못하게 된다. [라이브러리가 설치된 환경(OS)이 같은 곳이기 때문]
가상화는 CPU, 메모리 등의 기능을 소프트웨어로 대체해 동작하게 하는 것
도커는 운영 체제 기능 일부를 호스트 서버 운영체제에게 맡기는 형식 (커널 역할을 호스트가 하기 때문에 도커가 가벼워질 수 있었음)
정확히는 컨테이너를 내보낸 후, 도커 엔진이 이를 복원하는 형태
이를 이용하면, 물리적 서버가 달라도 똑같은 환경으로 실험을 할 수 있음.
컨테이너는 쓰고 버리는 일회용품
컨테이너를 일일이 업데이트하려면 유지보수 측면에서 힘들어질 것이다.
그러므로, 오래된 컨테이너를 버리고 새로운 이미지로 갈아타는 방식을 사용한다.
이렇게 되면 데이터 백업에 대한 문제가 생긴다.
하나의 컨테이너에 하나의 프로그램
위에서 말한 격리가 필요한 이유
와 같은 상황을 막기 위해 하나의 컨테이너에 하나의 프로그램을 많이 쓴다고 한다.
여러 프로그램을 한 번에 쓰는 것도 물론 가능하다.