What is Docker?
- 앱을 배포하는 소프트웨어 개발 플랫폼으로 컨테이너 기술을 사용하여 앱들이 컨테이너에 패키징됨
- 컨테이너들은 표준화되어 있으므로 어떤 운영체제에서도 작동함
즉, 앱이 한 번 컨테이너에 들어가면 어디든 상관없이 같은 방식으로 작동하므로
1) 호환성 문제 없이 어떤 머신에서든 가능
2) 동작이 예측 가능해서 처리할 일이 줄어듦
3) 배포와 유지가 수월하고 모든 언어로 사용 가능
4) 어떤 운영체제나 기술도 사용 가능
5) 소프트웨어의 개발 속도를 향상
Docker on an OS
- EC2 인스턴스 서버가 있을 때,
Java를 가동하는 도커 컨테이너를 실행, 노드를 가동하는 도커 컨테이너를 실행, MySQL을 가동하는 도커 컨테이너를 실행
EC2 인스턴스 서버 측면에서는 도커 컨테이너만 작동 시키므로 도커 컨테이너 하위에서 뭐가 실행되는지는 상관없음
Where are Docker images stored?
- 도커 컨테이너는 도커 이미지로부터 생성되며, 이 이미지들은 도커 레포지토리에 저장됨
- 도커 허브라고 불리는 공용 레포지토리는 hub.docker.com에 있고
많은 기술과 운영체제(Ubuntu, MySQL, NodeJS, Java)의 기본 이미지를 찾을 수 있음 - 또한 사설 도커 레포지토리인 Amazon ECR이 존재하며, ECR에는 Amazon ECR Public이라 불리는 공용 레포지토리도 존재
Docker versus Virtual Machines
- 도커는 가상화 기술의 일종이지만, 정확히는 말하자면 아니라고 할 수 있음
- 도커는 리소스들이 호스트와 공유되며 한 서버에서 여러 컨테이너를 공유할 수 있음
- VM의 구조로는 인프라 - 호스트 운영체제 - 하이퍼바이저 - 애플리케이션 / 게스트 운영체제가 존재하며
이는 EC2가 작동하는 방식으로 하이퍼바이저 위에서 돌아가는 가상 머신을 뜻하며 가상 머신들의 EC2 인스턴스는 전부 분리됨
그러므로 리소스를 서로 공유하지 않으며 고립됨
- 도커 컨테이너의 구조로는 인프라 - 호스트 운영체제(예 : EC2) - 도커 데몬 - 많은 컨테이너들이 존재하며
도커 데몬 위에서 구동될 만큼 가벼운 컨테이너들이므로 전부 함께 작동할 수 있고 네트워킹과 데이터 등을 서로 공유하므로
가상 머신보다는 덜 안전하지만 하나의 서버에서 컨테이너들을 더 구동할 수 있다는 장점이 존재
Docker Primer
- 도커 컨테이너와 도커 이미지의 생성 과정 (도커의 작동원리)
- 도커 파일 생성
기본 이미지 등을 작성하고 데이터를 도커 이미지에 복사하면 애플리케이션을 구동할 수 있고
애플리케이션을 실행해주는 명령을 내릴 수 있음 - 도커 이미지 생성
도커 파일을 정의하면 그 파일이 도커 이미지를 만들게 됨 - 도커 컨테이너 생성
도커 이미지가 생기면 도커를 실행할 수 있게 되어 도커 컨테이너를 만들어 줌 - 도커 이미지 저장
도커 이미지는 도커 푸시를 통해 도커 레포지토리인 도커 허브나 Amazon ECR에 푸시할 수 있으며
이미지를 풀하면 도커 풀도 가능하여 구동을 할 수 있음
Docker Containers Management
- AWS에서 도커의 컨테이너를 작동하기 위해서는 컨테이너 관리 플랫폼이 필요
- Amazon ECS : Amazon 자체 컨테이너 플랫폼
- AWS Fargate : Amazon 자체 서버리스 컨테이너 플랫폼
- Amazon EKS : Amazon의 관리형 Kubernetes 플랫폼으로 오픈소스 컨테이너 관리 플랫폼
'Cloud > AWS' 카테고리의 다른 글
[SAA] ECS 스케일링 (0) | 2022.04.12 |
---|---|
[SAA] ECS 개요 (0) | 2022.04.11 |
[SAA] Amazon MQ (0) | 2022.04.08 |
[SAA] SQS vs SNS vs Kinesis (0) | 2022.04.08 |
[SAA] Kenesis와 SQS FIFO에 대한 데이터 정렬 (0) | 2022.04.08 |