Docker Get Started Part 1. Orientation



1. Docker란?


개발자와 시스템 관리자가 컨테이너를 사용하여 응용 프로그램을 개발, 배포 및 실행하기위한 플랫폼




2. 컨테이너화 (Containerization)


 Linux 컨테이너를 사용하여 응용 프로그램을 배포하는 것


1) 컨테이너화(Containerization)의 장점


- 애플리케이션의 복잡도와 상관없이 어떠한 애플리케이션이든지 컨테이너화 할 수 있다.


- 컨테이너는 호스트 커널을 활용하고 공유한다.


- 업데이트 및 업그레이드를 즉시 배포할 수 있다.


- 로컬환경에서 구축한 후에 클라우드에 배치할 수 있고 어디에서나 실행할 수 있다.


- 컨테이너 복제본을 늘리고 자동으로 배포할 수 있습니다.


- 서비스를 수직적이고 즉석으로 스택할 수 있습니다.

-> 무슨 뜻...?




3. 컨테이너와 이미지


1) 이미지 = 응용 프로그램을 실행하는데 필요한 모든 것을 포함하는 실행 가능한 패키지 (코드, 런타임, 라이브러리, 환경 변수 및 구성파일)


2) 컨테이너


- 이미지를 실행하여 컨테이너를 실행할 수 있다.


- 이미지 런타임 인스턴스


- 이미지가 실행될 때 메모리에 저장된다. (상태가 있는 이미지, 사용자 프로세스)


- "docker ps" 명령어를 사용하여 현재 실행 중인 컨테이너 목록을 확인할 수 있다.




4. 컨테이너와 가상 머신


1) 컨테이너


- 컨테이너는 기본적으로 Linux에서 실행되며 호스트 시스템의 커널을 다른 컨테이너와 공유한다.


- 다른 실행 파일보다 더 많은 메모리를 사용하지 않고 별도의 프로세스를 실행하여 가볍게 만든다.


2) 가상 머신(Virtual Machine)


- Hypervisor을 통해 호스트 리소스에 가상으로 액세스 할 수 있는 본격적인 Guest 운영 체제를 실행한다.


- 일반적으로 가상 머신은 대부분의 응용 프로그램에 필요한 것보다 많은 리소스를 환경에 제공한다.




5. Docker Test


1) docker --version

- Docker의 버전과 Git commit을 출력한다.


2) docker version

- 위 명령어와는 다르게 docker 버전에 관한 자세한 정보를 출력한다. (출력한 내용을 자세히 알아볼 필요가 있다.)


3) docker info

- 여태껏 docker를 사용한 내역을 출력한다. (출력한 내용을 자세히 알아볼 필요가 있다.)


4) docker run [docker image 이름]      ->  ex) hello-world

- Docker image를 다운받는 명령어

5) docker image ls
- Docker image 를 확인한다.

6) docker container ls -all
- Docker 컨테이너를 확인한다. -> -all을 붙힘으로써 실행 중이 아닌 컨테이너도 확인한다.



6. 결론


1) 컨테이너화는 CI/CD를 매끄럽게 만든다.


- 애플리케이션은 시스템 종속성이 없다.


- 업데이트는 분산 응용 프로그램의 모든 부분에 Push될 수 있다.


- 리소스 밀도를 최적화할 수 있다.



2) Docker를 사용하여 Application을 확장하면 과도한 VM Host 를 실행하지 않고 새로운 실행파일을 작성할 수 있다.



출처

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

'개발 > Docker' 카테고리의 다른 글

Docker 명령어 정리  (0) 2019.01.22
Docker Get Started Part 2. Containers  (0) 2019.01.22
Docker 학습 계획  (0) 2019.01.22

+ Recent posts