컴퓨터 공학

[Infra] Docker 활용의 의의

bitcodic 2019. 1. 17. 08:37

 

기존에 동일한 클라우드 서버에서 주로 작업하던지라, 서버 내 환경이 큰 차이가 없었고

 

서버 규모가 작다보니 1대의 서버만을 활용했으므로 도커의 필요성을 딱히 느끼지 못하여, 이해만 하고 넘어갔다.

 

막상 사용해보며 이런 저런 지식들을 구하다보니 "왜 도커가 필요한가"에 대해서 조금은 체감하게 됐다.

 

앞서 언급한 

 

1. 동일한 클라우드 서버가 아닐 경우, 즉 OS 버전이 다르거나, 내부 설치 라이브러리 버전이 다르거나... 등등

2. 2대 이상의 서버 활용 시

 

이렇게 두 가지 경우에 대해서는 필요하겠구나라고 느꼈다.

 

결국 1/2 모두 서버 내 환경을 동일시하는 과정이 필요한 것이다. 

 

예를 들어, 내가 N사에 취직을 했는데 1년 전에 다른 누군가 작업하던 서버와 작업을 진행해야한다.

 

내가 방금 만든 A서버에선 되는데, 다른 누군가 1년 전에 작업한 B서버와는 환경이 달라

 

패키지 충돌이라던가, 버전 호환성 문제라던가 여러가지 상황이 발생할 수 있다.

 

심지어 상용 서비스의 경우 엄청나게 규모가 크지 않은가,

 

따라서 이러한 환경적인 문제를 차단하는 방안이 Docker 인 것이라고 이해했다.

 

+ python 에서 flask 쓸 때, virtualenv 사용하는 것도 비슷한 원리 아닐까? 이에 대해선 좀 더 시간을 내서 찾아봐야겠다.