Docker
프로그램을 빌드에서 배포, 실행까지 편하게 실행할 수 있는 오픈 소스 프로젝트
docker run dockerinaction/hello_world
예시의 docker run 명령어는 다음을 실행한다.
1. "dockerinaction/hello_world" 이미지를 찾는다.
2. 로컬에 이미지가 설치되어 있지 않다면, Docker Hub라는 공용 이미지 보관소에서 해당 이름에 해당하는 이미지를 찾는다.
3. 로컬로 이미지를 다운로드 한다.
4. 컨테이너를 새로 실행하고 이미지에 명시된 프로그램을 실행한다.
*Docker Hub는 Docker Inc.에 의해 제공되는 공개 레지스트리 (이미지 보관소)
도커의 컨테이너화
실행되는 프로그램과 시스템 자원을 컨테이너로 제한 및 보호.
일반적인 프로그램 실행
CLI로 실행된 프로그램들은 같은 유저 공간에서 시스템 리소스를 공유한다.
컨테이너 공간으로 분리된 프로그램들은 서로 시스템 리소스를 공유하지 않으며 각 컨테이너에게 부여된 리소스만 사용가능 하다.
도커가 해결하고자하는 문제
1.도커는 각 어플리케이션이 가지는 의존성 문제를 분리한다.
두 어플리케이션이 다음 서로 다른 버전의 라이브러리에 의존성을 가진다 하자.
App 1 -> gnulib 1.3
App 2 -> gnulib 2.1
App 2가 1.3과는 절대 호환할 수 없을 때, App2는 App1과 같은 환경에서 실행될 수 없다.
도커는 App1과 App2를 두 개의 분리된 컨테이너에서 각 독립적인 환경을 구성하여 같이 실행될 수 있게 한다.
2. 컴퓨터 보호
컨테이너 공간으로 제한된 실행으로 프로그램 오류나 공격자에 의한 취약성을 다른 컨테이너 프로그램에 영향을 주는 것을 제한한다.
3. Abstraction
컨테이너 Abstraction으로 도커는 컨테이너에 대한 관리를 용이하게 한다.
4. 언제 어디서나 원할 때 사용 가능한
docker run을 사용하라.
5. 도커를 이용한 다른 생태계
도커 컨테이너 엔진을 사용하는 쿠버네티스는 컨테이너로 실행되는 클러스터 환경을 오케스트레이션하는 도구로 유명하다.
도커 CLI 명령어 도움말
docker help
참고 : Docker In Action, 2nd Edition by Nickoloff Kuenzli
'Cloud > Docker' 카테고리의 다른 글
Docker In Action 5. Single-host networking (0) | 2023.10.22 |
---|---|
Docker In Action 4. Working with Storage and Volumes (0) | 2023.10.19 |
Docker In Action 3. Software Installation Simplified (0) | 2023.10.16 |
Docker In Action 2. 도커 컨테이너에 실행하기 (2) | 2023.10.15 |