Docker
먼저, Docker란 무엇인가?
AWS에서는 Docker를 애플리케이션을 신속하게 구축, 테스트 및 배포를 할수있는 소프트웨어 플랫폼으로 정의하였습니다.
스타트업 개발자로 일하면서 우리 서비스에 필요한 어플리케이션을 동작시킬 때 Docker를 굉장히 많이 사용하였습니다.
우리 서비스는 AWS를 사용하였는데 MSA 구조여서 그런지는 모르겠지만 EC2 인스턴스(조그만 컴퓨터 한대를 빌렸다고 생각하면 쉬울까요?)를 다수 사용하였고, 인스턴스마다 모두 Docker를 설치하여 성격에 맞는 것끼리 모아서 실행시켰던 기억이 납니다.
(Ex : ui 관련된 어플리케이션 끼리, 개발용 끼리, 내부적으로 필요한 어플리케이션 끼리 등)
쓰면서도 왜 사용하는지 어떻게 동작하는지는 잘 모르고 명령어만 외웠던 기억이 있네요.
이번 기회에 한번 정리해봅시다!
VM vs Docker
(조대협 님의 블로그 이미지 인용 https://bcho.tistory.com/805)
도커도 마찬가지로 이러한 문제를 해결하기 위해 사용할 수 있습니다.
(조대협 님의 블로그 이미지 인용 https://bcho.tistory.com/805)
+ 추가 ( AWS의 Docker란 무엇입니까? https://aws.amazon.com/ko/docker/)
VM과 비교해서 먼저 도커는 Linux 기반의 OS에서만 동작이 가능합니다.
또한 하드웨어를 가상화하는 것이 아니라, 컨테이너를 구축하여 단독적으로 동작하게 합니다(표현이 어렵네요).
명령수행에 Host의 OS를 사용하고 Host OS와 Container OS의 차이나는 부분만 컨테이너 내에 패키징 합니다.
저는 이부분에서 도커가 VM에 비해 '가볍다' 라고 하는 것으로 이해했습니다. VM은 해당 영역에 또다른 OS를 설치하고
그 OS를 통해 명령을 수행해야 하기 때문에 한 컴퓨터에서 여러개의 OS가 동작해야 하는것으로 보아야겠지요.
하지만 Docker는 기존의 OS를 사용하기 때문에 VM에 비해 가볍지 않나 생각합니다.
Docker의 동작 방식
Docker를 사용하는 이유?
'Study' 카테고리의 다른 글
(JAVA) Java DFS 구현 Java dfs ArrayList (0) | 2019.03.16 |
---|---|
(Java Greedy) 문자열안에 포함된 가장 긴 팰린드롬(palindrome)문자열 (0) | 2019.03.15 |
(JAVA) JAVA Stack을 활용하여 infix-postfix 변환 및 계산 (0) | 2019.03.15 |
면접대비 용어정리 (0) | 2019.02.11 |
(딥러닝) 나는 Java가 주언어인데, 파이썬? 텐서플로우? (0) | 2019.02.11 |
댓글