Docker Orientation and Setup
· Version : Docker
Docker Concepts
Docker는 개발자 및 시스템관리자가 컨테이너를 사용하여 응용 프로그램을 개발, 배포 및 실행하기 위한 플랫폼이다. Linux 컨테이너를 사용하여 응용 프로그램을 배포하는 것을 컨테이너화(containerization) 라고 한다. 컨테이너는 새롭지는 않지만 응용 프로그램을 쉽게 배포하는데 사용된다.
컨테이너의 장점
· 유연성(Flexible) : 복잡한 애플리케이션도 컨테이너화 할 수 있다.
· 경량(Lightweight) : 컨테이너는 호스트 커널을 활용하고 공유한다.
· 교환 가능(Interchangeable) : 업데이트 및 업그레이드를 즉시 배포 할 수 있다.
· Portable : 로컬에 구축하고, 클라우드에 배포하고 어디서나 실행 할 수 있다.
· 확장성(Scalable) : 자동으로 컨테이너 복제본을 늘리고 배포할 수 있다.
· Stackable : 서비스를 스택처럼 세로로 쌓을 수 있다.
Images and Containers
컨테이너는 이미지를 실행한다. 이미지는 응용 프로그램을 실행하는데 필요한 모든 것을 포함하는 실행 가능한 패키지 이다. (코드, 런타임, 라이브러리, 환경 변수 및 구성 파일 등)
컨테이너는 이미지의 런타임 인스턴스이다. 즉 이미지가 실행될 때 메모리에 저장된다. (즉, 상태가 있는 이미지 또는 사용자 프로세스). 실행중인 컨테이너 목록을 docker ps 명령으로 볼 수 있다.
Containers and virtual machines
컨테이너는 기본적으로 Linux에서 실행되며 호스트 시스템의 커널을 다른 컨테이너와 공유한다. 이 뜻은 다른 실행파일보다 더 많은 메모리를 사용하지 않고 개별 프로세스를 실행하여 가볍게 만든다.
가상컴퓨터(VM)는 하이퍼바이저를 통해 호스트 리소스에 대한 가상 액세스 권한을 가진 완전한 게스트 운영체제를 실행한다. 일반적으로 VM은 대부분의 응용 프로그램에 필요한 것보다 많은 리소스가 필요하다.
Prepare Docker environment
Docker Community Edition(CE) 또는 Enterprise Edition(EE) 를 설치 할 수 있다. Kubernetes 통합 환경은 Mac(17.12 Edge 이상), Windows (18.02 Edge 이상)에서 사용할 수 있다.
· Install Docker : https://docs.docker.com/install/
Test Docker Version
1. Docker 가 실행되고 있는 버전을 확인한다.
docker –version |
2. 설치된 Docker에 대한 자세한 내용을 확인한다. (권한 오류를 방지하려면 sudo를 사용하거나 사용자를 docker 그룹에 추가한다.)
docker info |
Test Docker installation
1. 간단한 Docker 이미지 hello-world를 실행하여 설치가 제대로 작동하는지 테스트한다.
docker run hello-world |
2. 로컬에 다운로드한 hello-world이미지를 확인한다.
docker images |
3. 생성된 컨테이너를 확인한다. 실행 중이지 않은 컨테이너를 확인하려면 –all 옵션이 필요 하다.
docker container ls --all |
Recap and cheat sheet
## List Docker CLI commands docker docker container --help
## Display Docker version and info docker --version docker version docker info
## Execute Docker image docker run hello-world
## List Docker images docker image ls
## List Docker containers (running, all, all in quiet mode) docker container ls docker container ls --all docker container ls -aq |
Conclusion
컨테이너화는 CI/CD를 매끄럽게 만든다.
· 응용프로그램에는 시스템 종속성이 없다
· 업데이트를 분산 응용프로그램의 모든 부분에 푸시 할 수 있다.
· 자원 밀도를 최적화 할 수 있다.
Docker를 사용하면 애플리케이션을 확장하면 과도한 VM 호스트를 실행하지 않고 새로운 실행 파일을 빠르게 생성할 수 있다.
[참고자료]
https://docs.docker.com/get-started/
2018-12-13 / Sungwook Kang / http://sqlmvp.kr
get started, setup, orientation, quickstart, intro, concepts, containers
'SW Engineering > DevOps, SRE' 카테고리의 다른 글
Docker Stack (0) | 2019.03.26 |
---|---|
Docker Swarms (0) | 2019.03.26 |
Docker Services (0) | 2019.03.26 |
Build an image and run it as one container (0) | 2019.03.26 |
Docker란 무엇인가? (0) | 2019.03.26 |