Docker 소개
Docker ·Docker란?
- 응용 프로그램 개발, 배포, 실행을 위한 개방형 플랫폼
- 컨테이너 기반의 오픈소스 가상화 플랫폼
- 컨테이너는 격리된 공간에서 프로세스가 동작하는 가상화 기술, 주로 OS를 가상화
- Docker 엔진은 호스트 OS 위에서 바로 돌아가고 host와 커널을 공유
- IO 빠름
- 멀티 OS 불가능
- Docker 엔진은 호스트 OS 위에서 바로 돌아가고 host와 커널을 공유
- 컨테이너는 격리된 공간에서 프로세스가 동작하는 가상화 기술, 주로 OS를 가상화
- 애플리케이션과 인프라를 분리하여 소프트웨어를 신속하게 제공
- 애플리케이션 관리와 같은 방식으로 인프라 관리
- 빠른 배포, 테스트, 배치를 통해 코드 작성과 운영 사이의 지연 시간을 줄임
- Immutable Infrastructure, 환경에 관계없는 애플리케이션 구동
- 내 컴퓨터에서 돌아가는 소스코드가 다른 사람의 컴퓨터에서도
멀쩡히 돌아간다는 보장이 없기에 운영 환경과 애플리케이션을
모두 묶어서 한꺼번에 배포할 수 있는 도커가 개발됨
- 내 컴퓨터에서 돌아가는 소스코드가 다른 사람의 컴퓨터에서도
Docker 장점
- 편리한 관리
- 서비스 운영 환경을 이미지로 생성하여 이 이미지만 관리하면 됨
- 확장
- 이미지 하나로 손쉽게 확장 가능
- 테스트
- 어디서나 이미지를 실행하면 서비스 운영 환경과 같은 환경이 구성됨
- 가벼움
- OS를 분리하여 이미지로 제작해 가볍고 어디서든 실행 가능한 환경
Docker Image
- 컨테이너 실행에 필요한 모든 파일과 설정값 등을 포함하고 있는 것
- 잘 돌아가는 환경 자체를 모두 묶어서 파일로 만든 것
- 컨테이너는 이미지를 실행한 상태, 추가되거나 변하는 값은 컨테이너에 저장
- 같은 이미지에서 여러 개의 컨테이너 생성 가능
- 컨테이너의 상태가 바뀌거나 삭제되더라도 이미지는 그대로
- 도커 이미지는 Docker Hub(무료)에 등록하거나 Docker Registry 저장소를 직접 만들어 관리할 수 있음
Dockerfile
- 단일 컨테이너의 내용 및 시작 동작을 정의한 파일로 자체 DSL 언어를 이용하여 이미지 생성 과정을 적음
- 사용자가 이미지를 조합하기 위해 명령줄에서 호출할 수 있는모든 명령을 포함하는 텍스트 문서
- 도커파일을 빌드하여 이미지 생성
Docker architecture
- Docker daemon
- Docker API를 요청을 수신하고 이미지, 컨테이너, 네트워크 및 볼륨과 같은 Docker 객체 관리
- Docker 서비스를 관리하기 위해 다른 데몬과 통신할 수도 있음
- Docker client
- 많은 Docker 사용자가 Docker와 상호작용하는 기본 방법
- Docker registries
- Docker 이미지 저장
- Docker Hub는 누가나사용할 수 있는 공개 레지스트리
- 그림자료
출처
초보를 위한 도커 안내서 - 도커란 무엇인가?
Docker를 소개합니다 by EricJeong
docker docs