Docker에 관해서

Docker를 개인 입장에서 사용할 때의 이득은 특정 OS를 native하게든 VM으로든 설치하지 않아도 되면서도 충분히 빠른 속도로 구동이 가능하고 내가 원하는 형태로 설치해놓고 그것을 이미지의 형태로 보관하면서 필요할 때마다 그 변종도 만들어낼 수 있으면서 또 그 이미지를 다른 H/W에 가져가도 설정을 바꾸지 않고 그대로 쓸 수 있다는 등등의 장점 때문이다.

좀 사용해보다 느끼는 것은 다양한 OS를 특정 파티션에 설치해서 매번 사용할 때마다 재부팅을 하지 않아도 되는 장점 뿐 아니라 마치 같은 머신 안에 여러 개의 OS를 부팅시켜놓고 원하는 것마다 골라서 로긴해서 작업을 시키고 있는 느낌도 들고 OS라기 보단 다른 OS의 응용 프로그램을 내 host OS에서 내 host OS의 설정에 영향받지 않고 구동시키고 있는 느낌이 더 강하게 든다. 표현이 좀 바보같긴 하지만 내가 느끼는 바로는 향후에는 OS의 구분이 없이 실행하고 싶은 어떤 OS의 어떤 application이든 모두 동일한 H/W에서 재부팅을 하지 않아도 실행이 가능해지는 것이 아닐까 하는 생각이 들게 된다.

이를테면 같은 linux라고 하더라도 어느 환경에서 빌드했느냐에 따라 사용하는 shared library가 다 달라서 사실 다양한 linux container를 가지고 있어야 되니까 이 역시도 의미있는 일은 아니다. 다른 OS도 마찬가지로 OS가 update 되면서 호환성이 없어지는 APP들이 생겨나게 된다. 그러므로 OS를 image 상태로 박제해 놓고 필요할 때마다 꺼내쓰는 것은 의미가 있다고 본다. 다소 희생이 크긴 하지만 OS 를 새로 install 하는 것과 비교할 바가 되지 않는다. 생각보다 image를 꺼내서 container 하나 만드는데 그다지 많은 시간이 걸리지 않는다.

다만, 윈도우즈 컨테이너를 윈도우즈가 아닌 OS (linux/MacOS)에서 돌리려면 어쩔 수 없이 VM을 먼저 돌리고 그 위에 Windows를 돌려야 되는 불편함이 있는데, 윈도우즈 세계가 좀 더 발전해주면 이것도 간편하게 가능하게 되지 않을까?