본문 바로가기

개발/Infrastructure

도커(Docker)가 뭐지?

반응형

최근 서버컴퓨터 OS를 기존 'Windows Server 2016'에서 'Ubuntu'로 갈아탔습니다.

개발 목적에서는 리눅스가 익숙한 점도 있지만, 진짜 이유는 Docker을 쓰기 위함이었죠.


오늘은 Docker가 어떤 것인지 소개해보려고 합니다.




일단 도커는 하나의 서비스가 담긴 컨테이너 단위로 작동되는 가상화 솔루션입니다.


도커가 설치된 곳이라면 컨테이너를 올려 추가적인 개발 환경 구성 없이 실행이 가능합니다.

현재는 리눅스에서 크게 사용되는 것으로 알고 있으며, 윈도우, MacOS에서도 사용 가능합니다.



그럼 도커와 일반적인 VM의 차이는?


Docker와 VM의 차이점

출처: https://www.docker.com/resources/what-container



VM은 Guest OS를 설치하여 그 위에 서비스를 올리는 반면 도커는 Guest OS부분이 빠져있습니다.

기반되는 OS가 없다는 뜻은 자원을 덜 먹고 OS를 생성하는 시간이 단축된다는 뜻이겠죠?


컨테이너 생성하는 시간 또는 과정은 1~2초, 길면 3초정도로 VM에 비해서는 빠르다.


도커 또한 VM처럼 컨테이너에 들어가 파일 구조, 명령어 입력 등이 가능하며 Ubuntu, CentOS를 작동시킬 수도 있습니다.


$ docker exec -it <container name> ls




도커는 아래 방법으로 설치할 수 있습니다. (Ubuntu 18.04 기준으로 작성되었습니다.)


Root 권한을 요구합니다.


$ sudo curl -fsSL https://get.docker.com/ | sudo sh


도커 설치를 마쳤으면 $ docker version 으로 확인을 할 수 있습니다.


Client:

 Version:           18.09.0

 API version:       1.39

 Go version:        go1.10.4

 Git commit:        4d60db4

 Built:             Wed Nov  7 00:49:01 2018

 OS/Arch:           linux/amd64

 Experimental:      false


Server: Docker Engine - Community

 Engine:

  Version:          18.09.0

  API version:      1.39 (minimum version 1.12)

  Go version:       go1.10.4

  Git commit:       4d60db4

  Built:            Wed Nov  7 00:16:44 2018

  OS/Arch:          linux/amd64

  Experimental:     false




도커는 리눅스 말고도 윈도우에서도 작동시킬 수 있습니다만

불안정하고 제대로 작동하지도 않아 개인적으로는 추천하지 않고 싶습니다.


도커 명령어 대체하고 간편하고 사용 가능한 'Docker-Compose', 도커를 웹 패널로 관리할 수 있는 'Portainer' 같은 다양한 도구들도 있으니 한 번씩 사용해보시길 바랍니다 :D


Portainer

Portainer



참고자료 : https://www.docker.com/resources/what-container


반응형