https://docs.docker.com/get-started/overview/
정의
- Docker
- software deliver를 빠르게 해주는 플랫폼
- software deliver
- new feature가 적용되어 production으로 사용되는 과정
https://martinfowler.com/delivery.html
- Docker의 주요 keyword
- image
- container
- Docker image
- Docker container를 만들기 위한 instruction template
- Dockerfile을 사용
- Docker Container
- Docker에서 사용되는 unit
- application 실행에 필요한 모든 것을 담은 독립적인 환경
- Conatiner의 특징
- Lightweight
- (A) 왜 lightweight한지? - host에 의존하지 않음
- namespace를 통해 application으로 부터 infrastructure의 의존을 분리
- (B) 어떻게 분리시키는지?
- 따라서 개발 프로세스의 속도 향상
- Lightweight
- (A) 왜 lightweight한지?
https://pythaac.tistory.com/474
아키텍쳐
- Client-Server Architecture
- Client (docker)
- 사용자가 Docker와 상호작용하도록 해줌
- REST API를 통해 Docker Daemon에 요청을 전송
- Docker Daemon (dockerd)
- Docker object를 관리
- container / image / network / volume / plugin
- Docker object를 관리
- Docker Registry
- image를 저장
- Dockerhub
- image를 저장
- Client (docker)
- 다음 명령어를 실행했을 때
>> docker run -i -t ubuntu /bin/bash- client가 요청을 Docker Daemon에 전송
- dockerd는 ubuntu image가 없으면 Docker registry에서 ubuntu image를 pull
- dockerd에서
- 컨테이너 생성
- 컨테이너에 파일시스템 할당
- 컨테이너의 네트워크 연결을 위한 network interface 생성
- /bin/bash 실행
'데이터 엔지니어링 > Docker' 카테고리의 다른 글
[Docker] Container의 Lightweight (컨테이너가 가벼운 이유) (0) | 2022.07.14 |
---|---|
[Docker] Docker Daemon (dockerd) (0) | 2022.07.14 |
[Docker] 윈도우 docker 설치 (0) | 2022.06.16 |
[Docker] 명령어 모음 (0) | 2022.05.13 |
[Docker] Docker란 (0) | 2022.05.09 |