블록체인

docker + 윈도우즈10설치 및 개념이해

늘근이 2017. 11. 8. 22:25

Docker 설치


Docker version 17.06.2 

그냥 냅다 링크로 가서 설치하면 문제가 없이 보인다.



$ docker --version 

뭔가 버전명이 뜨면 정상적으로 설치된것이다.


...라고 포스팅을 마치기에는 민망하니, 도커개념에 대해 대충 짚고 넘어간다.

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼으로, 귀찮게 계속해서 OS를 OS위에 설치하면서 가상화하려면 짜증이 나니, 실행환경등을 컨테이너로 추상화한 후에 호스트 OS위의 프로세스만 격리해서 마치 다른 가상머신을 이용하는것처럼 해준다. 아니 왜 잘돌아가는 OS위에 OS를 까는 추잡한 짓을 한단말인가? 초기상태가 잘 정리되어있는 격리된 환경을 만들기 위해서다. 



도커가 사실 도커도커해서 말만들었지 클라우드나 인프라쪽에 관계가없으면 확 와닿지않을수가 있는데, Guest OS가 있어야 되는부분을 도커로 다 커버가 가능하다는것은 이렇게 설명하면 될것같다.

예를들어 1995년을 컴퓨터와 지낸 사람을 알겠지만 윈도우 95를 깔려고 디스크 10장을 열심히 바꿔끼면서 설치하다보면 어느새 아침이 지나 저녁이 되어버렸다. 지금은 USB설치가 가능해서 사실은 30분 가만히 기다리면 되지만, 클라우드 회사의 입장에서 당장 서비스를 시시각각 제공해야하는데 OS설치가 될때까지 세월아 네월아 기다리기는 좀 그렇다. 물론 요즘에는 이 과정도 수십초면 끝날수있겠지만 OS위에 OS를 설치한다는것이 쉬운일은 아니다. 하지만, HOST의 OS에 의지하면서 정말 필요한것만 격리시켜놓으면 이 과정이 수초내로 줄어들수도 있다.

사실 우리가 OS를 설치할때 이것만 설치하고 끝나는게 아니다. SPSS 설치위해 디스켓 10장을 열심히 바꿔깔아야하며, 친구에게 불법복제해온 삼국지3 8장도 열심히 복사해야한다. 하다못해 아버지를 위해 고도리라도 깔아드려야한다. 중요한것은 이행위를 뭔가 새로운 환경을 만들때마다 해야한다는것이다. 개발하다보면 제일 시간이 오래걸리는게 세팅이다. 마찬가지로, 환경구성은 정확히 똑같이 구현하기가 힘들수도 있다...가 아니라 불가능하다. 컴퓨터 수업을 들으러가서 뭔가 설치하는것부터 배우고자 한다면 꼭 반에 한두명은 엉터리로 깔거나 컴퓨터가 고장나있거나 뭐 상상하기 힘든이유로 점을 하나 더찍었다든가 하는문제가 있다. (전문가 100명을 데려다놔도 사실 비슷할것같다)

도커는 이 새 OS환경과 일련의 기초 프로그램들을 깔아버린 버전을 하나의 이미지로 제공하며 이 이미지가 돌아가는 놈들을 어플리케이션 컨테이너라 부른다. 이 이미지란게 예전의 노턴고스트 이미지같이 용량이 몇기가 되는 놈이 아니라 그냥 마법의 레시피일뿐이다. 얘깔아 쟤깔아 라는 것들만 알고있을뿐이다. 

OS뿐만아니라 갖가지 잡프로그램도 잘 이미지에 예쁘게 써놓으면 알아서 환경을 세팅해주며 (좀더 유식하게 배포환경 세팅이라고 하자) 그 이미지 자체도 용량이 크지가 않고 바로바로 새로운 OS환경을 수초안에 만들어버릴수있다는것은, 수많은 개발자들과 운영자들의 눈물과 콧물이 섞여들어간 세팅과정을 '그냥 오다가 선물꾸러미로 준비해왔어 넌 풀기만해' 라는 태도나 마찬가지다. 게다가 '필요한거 있으면 더 말해봐 그것도 추가해서 선물로 만들어줄게' 이런것도 가능하니 감동일수밖에 없다는것이다. 

docker는 단순한 가상머신 대체물이 아니라 어느 플랫폼에서도 똑같이 재현가능한 어플리케이션 컨테이너를 만든다는말이 이말이다. 

클라우드 서비스 업체라면 하루에도 몇천 몇만건씩 페이스북같은 대박의 희망에 부푼 사람들이 열심히 도메인이름을 짓고 웹사이트를 위한 리눅스 서버를 신청하러 올수도 있다. 그때 결제완료 되었다는 딸랑이를 듣는 동시에 기본세팅이 되어있는 이미지로 얼릉 어플리케이션 컨테이너를 하나 제공하면 된다. 이런 웹사이트는 99% 손님이 한명도안오고 방치되기 마련이라 호스팅업체는 유지관리비가 거의 들지않아  호객으로 일단 100원에 호스팅해도 이득일 수 있지만 만약 서버 하나하나 초기세팅에 사람손이 들어가게 된다면 벌써 가격은 천정부지로 치솟게 될것이다. 


추신)

사실 윈도우10에는 Hyper-V Manager가 기본설치가 되어있는데 이를 구동해보면 MobyLinuxVM이라는 명으로 설치가 되어있다. 도커에서 게스트OS와 호스트OS가 다르다는것은 이론적으로 불가능하기때문에, 윈도우즈나 맥에서는 일단 가상머신으로 리눅스를 HOST OS로 이용하기위해 할수없이 뒷단에 저렇게 깔린다.



그냥 냅다 설치파일을 깔면 어디선가 신나게 돌아가고 있으므로 그다지 신경쓸것은 없고 바로 docker명령어를 통해 개발을 즐길수있다. 다만 파워하게 파워쉘 관리자모드로 즐기는게 추후 권한문제등이 생기지 않을것이다.