이 포스팅은 위키북스의
시작하세요! 도커/쿠버네티스
를 보고 공부한 내용을 바탕으로 하고 있습니다. (문제가 된다면 비공개 처리하겠습니다😂😂)
도커(Docker)란 리눅스 컨테이너를 기반으로 하여 특정한 서비스를 패키징하고 배포하는데 유용한 오픈소스 프로그램이다. 여기서 중요한 말은 컨테이너라는 것이다.
만약 윈도우에서 리눅스를 쓰고 싶다면 어떻게 해야할까? 저장공간을 나누고 나서 처음부터 윈도우따로 리눅스따로 설치해서 한가지만 구동시키는 멀티부팅 방식. 혹은 AWS을 사용하여 컴퓨터를 대여하는 방식. 그것도 아니라면 버추얼박스같은 가상머신 솔루션을 이용하는 방법이 있겠다.
가상머신은 하이퍼바이저를 이용해 Guest OS를 만들어낸다. 예를 들어, 윈도우 운영체제를 메인으로 쓰고 있다면 이는 Host OS가 되는 것이고 이 위에 Ubuntu를 가상머신위에 구동시킨다면 이는 Guest OS가 되는 것이다. Guest OS를 구동시키려면 Host OS에서 자원을 일부 사용해야 한다. 따라서 Host OS도 느려지고, Guest OS도 성능이 그리 좋은 편은 아니다.
그렇다면 도커의 컨테이너는 뭐가 다를까? 가상머신에 비해 꼭 필요한 것만 담겨서 구동
된다는 차이가 있다. 즉, 컨테이너에 필요한 커널은 호스트의 커널과 공유해서 사용하고, 컨테이너 안에는 애플리케이션을 구동하는데 필요한 라이브러리 및 실행파일만 존재하기 때문에 컨테이너를 이미지로 만들경우 용량이 대폭 줄어든다.
예를 들어, 어떤 프로젝트는 스프링으로 되어있고, 또 다른 어떤 프로젝트는 NodeJS로 되어있다고 해보면 어떨까? 한 컴퓨터에다가 이것도 설치하고 저것도 설치해야 하고 이것 따로 설정하고 저것 따로 설정해야 할 것이다. 사실 이런 방법은 좋지 않다.
그럼 도커를 활용하면 어떤 장점이 있을까?
도커는 다양한 운영체제에서 사용할 수 있지만, 가장 사용하기 좋은 환경은 역시 리눅스이다.
$ sudo apt install apt-transport-https
$ sudo apt install ca-certificates
$ sudo apt install curl
$ sudo apt install software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install docker-ce
참고로 도커는 EE와 CE로 구분되는데 EE는 기업에디션
이고, CE는 커뮤니티 에디션
이라는 뜻입니다. 도커 EE는 유료이고 부가기능이 존재하고, 도커 CE는 무료이고 별도 기술지원과 서비스를 제공하지 않습니다. 핵심적인 기능은 CE에서도 사용가능하기 때문에 일반 개발자나 공부하는 학생이라면 CE설치를 추천합니다.
$ sudo systemctl status docker
잘 동작하고 있는 것을 확인할 수 있다.
윈도우에서도 도커를 사용해보고 싶다. 내 컴퓨터가 맥이나 리눅스라면 좋았겠지만 윈도우이다. (하... 맥 사고 싶다. 맥 마렵네 😂). 뭐... 이제는 시간이 많이 흘렀으니 도커가 이제는 윈도우에서도 제대로 돌아가지 않을까 생각한다. 그래서 도전해본다. 윈도우에서 도커 사용해보기!!
윈도우에서 도커를 사용하기 위해서는 가상화 기술인 Hyper-V를 활성화시켜야 한다.
다음 사이트에 접속해서 도커 윈도우 버전 다운받기. 용량은 500MB 정도 된다.
설치가 끝나면 재부팅을 해준다.
재부팅이 끝났는데 이런 메시지가 나왔다면 해당 링크로 가서 관련 파일을 설치해 준 후 Restart 하면 된다.
설치가 끝나면 docker 애플리케이션이 실행된다. 와... 근데 UI 진짜 깔끔해졌네. 👏👏
다음 URL 접속하여 각자의 OS (이번 포스팅에선 Window)에 맞게 다운로드 후 압축 해제 하여 주자. 실행하고 로그인 하면 이제 도커를 사용할 기본적인 준비는 완료되었다.