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
1) 컨테이너화는 CI/CD를 매끄럽게 만든다.
- 애플리케이션은 시스템 종속성이 없다.
- 업데이트는 분산 응용 프로그램의 모든 부분에 Push될 수 있다.
- 리소스 밀도를 최적화할 수 있다.
2) Docker를 사용하여 Application을 확장하면 과도한 VM Host 를 실행하지 않고 새로운 실행파일을 작성할 수 있다.
출처
'개발 > Docker' 카테고리의 다른 글
Docker 명령어 정리 (0) | 2019.01.22 |
---|---|
Docker Get Started Part 2. Containers (0) | 2019.01.22 |
Docker 학습 계획 (0) | 2019.01.22 |