SW교육/Docker

도커를 시작해 봅시다 - 01

GrayrabbiT 2020. 11. 16. 01:10
반응형

도커

사실 이거 왜 쓰나 싶었었는데...

어머... 이건 정말 써야만 해.

  1. 개발 환경이 딱 고정된다. 개발환경이 고정되다 보니, 내가 원하는 환경에 맞추어 개발할 수 있다.
  2. 공유가 간편해진다. 그냥 넣어서 돌리기만 하면 된다.
  3. 마이크로 서비스에 딱이다! 그냥 백단은 백에만 짜고 앞단은 앞에 짜고 서로 통신만 시키면 장땡!

콘테이너

도커에서는 콘테이너의 개념이 중요한데. 하나의 앱이 실행되는 공간이라고 생각하자

이렇게... 생겨먹은 콘테이너들을 계속 쌓는거다.

혹자는 아마도 이렇게 가상머신을 띄우는게 맞는가란 생각을 하게 될텐데.

도커의 콘테이너는 가상머신이 아니다.

왼쪽은 컨테이너, 오른쪽은 가상머신이다.

한번 살펴보면, 왼쪽의 컨테이너에서는 호스트 OS에 도커 위에 다양한 컨테이너들이 생성되는 것이다. 이와는 다르게 가상머신의 경우 Hypervisor 위에서 다시 Guest OS들이 생성되고 그 위에 앱들이 생기게 된다.

이것은 가상의 OS들이 계속 생기게 됨으로 인하여 시스템에 성능이 떨어지는 것은 당연할 것이다. (리소스를 더 많이 쳐묵쳐묵)

그런데 도커는 일단 OS위에서 필요한 부분만을 가져가서 컨테이너가 생성됨으로 인하여 빠르게 배포가 가능하며, VM에서 드는 라이선싱에 대한 비용이 줄어들게 된다.

말은 길게 했는데 결국은 도커가 VM에 비해서 짱이다. 닥치고 짱이다.

나중에 마이크로서비스를 오케스트레이션 하기 위해서는 도커만한게 없다. 그냥 짱짱맨이다.

장점

  1. 빠르다, 공간 절약 된다.
  2. 공유, 재생성, 배포가 쉽다.
  3. 앱을 캡슐레이션하는 것도 좋다.

설치해보자.

 - Windows, Mac

그냥 여기 방문하자마자 첫 번째 페이지의 Docker Desktop을 설치하자.

(저는 WSL2를 기본 개발환경으로 쓰기 때문에 좀 짤게 걸립니다만, 안쓰신다면 Hyper-V부터 설치하셔야 합니다;;)

 

https://www.docker.com/get-started

 - Linux

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

끝이다..

다만.. 리눅스에서는 권한문제로 인하여 이런 메세제를 보게 될 수 있다.

docker permission denied

 

위와 비슷한 메세지를 받게 된다면 다음 명령을 실행하도록 하자

sudo usermod -aG docker ${본인의 계정}

뭐 저보다 다들 잘 아시겠지만 docker 그룹에 자신의 계정을 추가하도록 하는 명령이다.

 

 

일단 한번 만들어 볼까?

 

기본적으로 윈도우 10 환경에서 WSL2를 사용한다. Docker desktop을 실행시켜 톱니바퀴를 클릭해 환경설정으로 들어가보면 일단 이렇게 되어 있다.

 

Docker Desktop 환경설정 아마 Mac도 비슷한 화면일껄???

이제 WSL로 나가서 다음과 같이 해보자. 

 

 

wsl에서 docker 명령을 써 보면 다음과 같은 화면이 나온다면 썩쎄수!

 

이젠 한 번 시작해 보자. 

 

docker run -d -p 80:80 docker/getting-started

 

이 명령어를 치면 다음과 같은 화면이 나타난다. 

 

잠시 설명해 보면 

 

run 해라(달려라?)

 

-d 백그라운드 에서 실행해라..

 

-p 포트 외부 80 을 내부 도커 80에 맞춰라

 

docker/getting-started 이미지를 가져와서 

 

 

이렇게 된다. 그러면 갑자기 마구 다운을 받기 시작하는데 docker/getting-started이미지를 가져온다. 그런데 특이한 것은 이 이미지를 받아올 때 1개가 아닌 여러개로 쪼개서 가져오게 되는데 이게 핵심이다. 즉, 이 이미지를 구성하는 여러 개의 조각을 모으게 되는데(의존성) 다른 이미지를 가져올 때 같은 이미지 파편들이 있다면, 그것을 재사용할 수 있다.

 

 

 

웹브라우저를 통해 localhost에 접속해 보자.

서...서버가 실행중이네???

 

이미지를 가져다가 바로 실행시킨 결과이다. 

 

우리도 해보자..

 

반응형

'SW교육 > Docker' 카테고리의 다른 글

도커를 시작해 봅시다 - 02 (일단 돌리자!)  (0) 2020.11.16